1

QMenuBar を画面の下部 (QMainWindow の下部) に配置する方法はありますか?

私は論文プロジェクトに取り組んでおり、ディレクターから QMenuBar を画面の下部に配置するように依頼されました。これは可能ですか?、メニューバーのジオメトリを調整しようとしています。Qt Designer ではバーの位置を移動できますが、プロジェクトを実行すると常にメニュー バーが表示されます。

前もって感謝します。

4

2 に答える 2

3

QMainWindowで提供されるデフォルトのQMenuBarを使用しないでください。代わりに、独自に作成してください。この概念実証の例では、メインウィンドウに追加されたQVBoxLayoutに追加される新しいQMenuBarを作成します。

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QMenuBar* bar = new QMenuBar(this);
    ui->verticalLayout->addWidget(bar);

    QMenu* menu1 = new QMenu("First menu", bar);
    menu1->addMenu("Foo");
    menu1->addMenu("Bar");

    QMenu* menu2 = new QMenu("Second menu", bar);
    menu2->addMenu("Foo");
    menu2->addMenu("Bar");

    bar->addMenu(menu1);
    bar->addMenu(menu2);
}

これは少なくともWindowsでは機能します。

于 2012-02-21T21:58:16.690 に答える
0

QDockWidget にメニューを配置したので、下部にメニュー バーを配置することも可能だと思います。

ただし、プログラムで行う必要があります。QMenuBar は QWidget を継承するため、QMainWindow の下部に QWidget を追加し、この QWidget を親ウィジェットとして指定する QMenuBar を作成します。

于 2012-02-21T22:00:25.890 に答える