在Qt中使用统一菜单栏

时间:2016-05-01 17:25:56

标签: c++ qt user-interface ubuntu gnome-shell

我有一个简单的Qt MainWindow:

// ui/mainwindow.hpp
class MainWindow: public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget* parent = 0);
public slots:
private:
};

// ui/mainwindow.cpp
MainWindow::MainWindow(QWidget* parent): QMainWindow(parent)
{
    QMenu* menuFile = menuBar()->addMenu(tr("File"));
    menuFile->addAction(tr("Some"));
}

// Application entry
int main(int argc, char* argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

我注意到,使用Ubuntu和Unity时,菜单栏不会显示在屏幕顶部,而是显示在应用程序的窗口内。

如何让菜单栏显示在屏幕顶部?

1 个答案:

答案 0 :(得分:2)

您使用的是哪个版本的Qt?

  • 对于Qt 4.8,需要安装包appmenu-qt
  • 对于Qt 5.2+,需要安装包appmenu-qt5并在环境中设置QT_QPA_PLATFORMTHEME = appmenu-qt5`

这不是您在应用开发者方面所影响的事情。