[英]How to add a Menubar to a QWidget?
我目前正在使用Qt框架編寫C ++應用程序,其中“主窗口”繼承自QWidget
類:
class Draughts : public QWidget
{
Q_OBJECT
public:
explicit Draughts(QWidget *parent = 0);
~Draughts();
private:
Ui::Draughts *ui;
};
我嘗試使用以下代碼向應用程序添加一個簡單的菜單欄:
Draughts::Draughts(QWidget *parent) :
QWidget(parent),
ui(new Ui::Draughts)
{
ui->setupUi(this);
QWidget *menuWidget = new QWidget;
QMenu *menuGame = new QMenu("Game");
menuGame->addAction("New");
menuGame->addAction("Exit");
QMenu *menuHelp = new QMenu("Help");
menuHelp->addAction("How to Play...");
menuHelp->addAction("About");
//Setup the Application Menu
QMenuBar mainMenu(this);
mainMenu.addMenu(menuGame);
mainMenu.addMenu(menuHelp);
}
我應該為我的應用程序使用QMainWindow
類而不是QWidget
類嗎?
使用QMainWindow
會更容易,因為它提供了一個方便的menuBar()
方法:
QMenuBar* mainMenu = this->menuBar();
但是可以像其他小部件一樣將其添加到QWidget
。 只是不要在本地范圍內分配它,因為它將在函數完成后刪除。 相反,請像使用其他小部件一樣進行操作:
QMenuBar mainMenu = new QMenuBar(this);
您可能還應該將布局添加到窗口小部件,然后將菜單添加到布局以更好地控制它的顯示位置。 您可能會發現本教程很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.