【问题标题】:Using unity menu bar in Qt在 Qt 中使用统一菜单栏
【发布时间】:2016-05-01 17:25:56
【问题描述】:

我有一个简单的 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 中,菜单栏没有显示在屏幕顶部,而是显示在应用程序的窗口中。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    这并不是你对应用开发者的影响。

    【讨论】:

    • 我使用的是 Qt 5.6。不过,设置 QT_QPA_PLATFORMTHEME=appmenu-qt5 似乎不起作用。 (使用导出 QT_QPA_PLATFORMTHEME=appmenu-qt5)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    相关资源
    最近更新 更多