2016-05-01 2 views
0

У меня есть простой Qt MainWindow:Используя единство строки меню в Qt

// 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, строка меню не отображается в верхней части экрана, но вместо того, чтобы внутри приложения окно.

Как заставить панель меню отображаться в верхней части экрана?

ответ

2

Какая версия Qt вы используете?

  • Для Qt 4.8 необходимо установить пакет appmenu-qt.
  • Для Qt 5.2+, пакет appmenu-qt5 должен быть установлен и QT_QPA_PLATFORMTHEME = appmenu-qt5` быть установлена ​​в среде

Это не совсем то, что вы влияете на стороне разработчика приложения.

+1

Я использую Qt 5.6. Однако настройка QT_QPA_PLATFORMTHEME = appmenu-qt5 не работает. (Использование экспорта QT_QPA_PLATFORMTHEME = appmenu-qt5) –