Qt 带浮动工具栏的QDialog

Qt 带浮动工具栏的QDialog,qt,toolbar,qdialog,Qt,Toolbar,Qdialog,如何在Qt中创建带有浮动工具栏的QDialog 在QDialog中附加工具栏作为小部件的QMainWindow不合适。为什么不合适?下面的代码工作起来很有魅力 #include <QtGui> class MyDialog : public QDialog { Q_OBJECT public: MyDialog(QWidget* parent=0) { QMainWindow* child = new 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!"));
    }
};
#包括
类MyDialog:公共QDialog
{
Q_对象
公众:
MyDialog(QWidget*parent=0)
{
QMainWindow*child=新的QMainWindow;
QLabel*label=新的QLabel(tr(“带工具栏的QMainWindow!”);
标签->设置对齐(Qt::AlignCenter);
child->setCentralWidget(标签);
QToolBar*toolbar=child->addToolBar(tr(“工具”);
工具栏->添加操作(tr(“测试”),这个,插槽(doTest());
QHBoxLayout*布局=新的QHBoxLayout(本);
布局->设置内容边缘(0,0,0,0);
布局->添加小部件(子部件);
}
专用插槽:
void doTest()
{
信息(这个,tr(“测试”),tr(“工具栏正在工作!”);
}
};
看看 试着写这样的短信

myDialog->layout()->setMenuBar(myToolBar);

窗户太重了。也许我并不是一个精确的问题。更正确的是:如何在qt中创建带有浮动工具栏的Qwidget?如果我想在一个对话框中为不同的小部件创建多个工具栏,只需浮动工具栏就可以轻松完成,因为它是QWidget派生的,我相信您可以随时将QWidget作为弹出窗口。但如果您想使其可停靠/浮动切换,似乎除了使用QMainWindow之外别无选择。还有一件事。你说的“QMainWindow很重”是什么意思。QMainWindow运行缓慢吗?