c++ - 在qt中添加菜单栏时出错

标签 c++ qt

我试图在 QDialog 中添加菜单栏,但出现以下错误:

error: 'class Qt_Stackwidget' has no member named 'menuBar'
         QMenuBar* menubar = this->menuBar();

我很困惑为什么会这样。我搜索了一下,发现QDialog没有名为menuBar()的函数。如何将菜单栏添加到 QDialog.谁能帮我解决这个问题吗?

最佳答案

您可以添加这样的菜单栏:

#include <QtGui>

class Dialog : public QDialog
{
public:
    Dialog(QWidget *parent = 0) : QDialog(parent)
    {
        QVBoxLayout *layout = new QVBoxLayout;
        setLayout(layout);

        QMenu *menu = new QMenu("File");
        menu->addAction("Exit");

        QMenuBar *menubar = new QMenuBar();
        menubar->addMenu(menu);

        layout->setMenuBar(menubar);
    }
};

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QPushButton *button = new QPushButton("Button");

    Dialog *dialog = new Dialog;
    dialog->layout()->addWidget(button);
    dialog->show();

    return app.exec();
}

enter image description here

关于c++ - 在qt中添加菜单栏时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29050126/

相关文章:

python - 如何向创建的表单添加数据? PyQt/Python/SQL

c++ - 从 vector 生成元素子集(无嵌套循环)

c++ - 数组操作的复杂性

c++ - 是否可以从 QModelIndex 获取 Qpoint

c++ - QStates 的内存管理添加到 QStateMachine

c++ - 如何确定 QPushButton 的释放信号是自动重复还是实际鼠标释放的结果

c++ - if >= 条件更改全局数组中元素的值

c++ - 获取指向从属 YAML::Node 的指针

c++ - 函数模板中出现无效的转换错误,其返回值取决于其泛型类型

c++ - 如何在 Qt 中翻转图像?