2012-02-21 9 views
1

QMenuBarを画面の下部に配置する方法はありますか(QMainWindowの下部にあります)?QMenuBarをQMainWindow Bottom QTに入れよう

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

ありがとうございます。

答えて

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で動作します。

+0

お返事ありがとうございます。後で試してみます。本当にありがとうございます。 – Herman

+0

はい、QMainWindowsには既定の垂直レイアウトがありません。手動で追加する必要があります。 –

+0

こんにちは、私はQtで少し新しくなっています。QMainWindowにQVerticalLayoutを配置する必要があります。私はそれをトリビュートしています。ウィンドウのサイズを変更すると、画面の下部に垂直レイアウトを維持する方法が不思議でした。レイアウトは常に同じ場所にありますが、ウィンドウがサイズ変更されたときにレイアウトを作成する方法はありますか?前もって感謝します。 – Herman

0

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

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

+0

あなたの答えをありがとう – Herman

関連する問題