2016-05-01 9 views
0

Ich habe eine einfache Qt Mainwindow:mit Unity Menüleiste in 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(); 
} 

ich zu bemerken, dass mit Ubuntu und Unity, die Menüleiste nicht auf dem oberen Rand des Bildschirms angezeigt wird, sondern innerhalb der Anwendung Fenster.

Wie mache ich die Menüleiste oben auf dem Bildschirm angezeigt?

Antwort

2

Welche Version von Qt verwenden Sie?

  • Für Qt 4.8 muss das Paket appmenu-qt installiert werden.
  • Für Qt 5.2+, appmenu-qt5 das Paket installiert werden muss, und QT_QPA_PLATFORMTHEME = AppMenu-qt5` in der Umgebung gesetzt wird

Das ist nicht wirklich etwas, das Sie auf der Seite des App-Entwickler beeinflussen.

+1

Ich benutze Qt 5.6. Die Einstellung von QT_QPA_PLATFORMTHEME = appmenu-qt5 scheint jedoch nicht zu funktionieren. (Mit Export QT_QPA_PLATFORMTHEME = appmenu-qt5) –