【发布时间】:2012-10-17 04:37:29
【问题描述】:
如何在 Qt 中创建带有浮动工具栏的QDialog?
在QDialog 中以工具栏作为小部件的QMainWindow 附件不适合。
【问题讨论】:
如何在 Qt 中创建带有浮动工具栏的QDialog?
在QDialog 中以工具栏作为小部件的QMainWindow 附件不适合。
【问题讨论】:
为什么不适合?下面的代码就像魅力一样。
#include <QtGui>
class MyDialog : public QDialog
{
Q_OBJECT
public:
MyDialog(QWidget* parent=0)
{
QMainWindow* child = new QMainWindow;
QLabel* label = new QLabel(tr("QMainWindow with toolbar!"));
label->setAlignment(Qt::AlignCenter);
child->setCentralWidget(label);
QToolBar* toolbar = child->addToolBar(tr("Tool"));
toolbar->addAction(tr("Test"), this, SLOT(doTest()));
QHBoxLayout* layout = new QHBoxLayout(this);
layout->setContentsMargins(0,0,0,0);
layout->addWidget(child);
}
private slots:
void doTest()
{
QMessageBox::information(this, tr("Test"), tr("ToolBar is Working!"));
}
};
【讨论】:
看看 Can you add a toolbar to QDialog? 并尝试像那样写smth
myDialog->layout()->setMenuBar(myToolBar);
【讨论】: