QMenuBar を画面の下部 (QMainWindow の下部) に配置する方法はありますか?
私は論文プロジェクトに取り組んでおり、ディレクターから QMenuBar を画面の下部に配置するように依頼されました。これは可能ですか?、メニューバーのジオメトリを調整しようとしています。Qt Designer ではバーの位置を移動できますが、プロジェクトを実行すると常にメニュー バーが表示されます。
前もって感謝します。
QMenuBar を画面の下部 (QMainWindow の下部) に配置する方法はありますか?
私は論文プロジェクトに取り組んでおり、ディレクターから QMenuBar を画面の下部に配置するように依頼されました。これは可能ですか?、メニューバーのジオメトリを調整しようとしています。Qt Designer ではバーの位置を移動できますが、プロジェクトを実行すると常にメニュー バーが表示されます。
前もって感謝します。
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では機能します。
QDockWidget にメニューを配置したので、下部にメニュー バーを配置することも可能だと思います。
ただし、プログラムで行う必要があります。QMenuBar は QWidget を継承するため、QMainWindow の下部に QWidget を追加し、この QWidget を親ウィジェットとして指定する QMenuBar を作成します。