簡體   English   中英

如何將菜單欄添加到QWidget?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM