Qtでメニューを含むプログラムを作成しようとしています。メインクラスはQWidgetから派生しており、QMainWindowを使用して関数menuBar()を使用できることはわかっていますが、QMainWindowでレイアウトを使用することはできません。setMenuBarを使用してウィンドウのレイアウトにQMenuBarを追加しようとしましたが、menuBar()を使用した場合のように表示されず、ドロップダウンメニューにする方法がわかりません。
質問する
10247 次
3 に答える
9
QVBoxLayout *boxLayout = new QVBoxLayout(this); // Main layout of widget
QMenuBar* menuBar = new QMenuBar();
QMenu *fileMenu = new QMenu("File");
menuBar->addMenu(fileMenu);
fileMenu->addAction("Save");
fileMenu->addAction("Exit");
this->layout()->setMenuBar(menuBar);
上記のコードでは、ウィジェット レイアウトのメニュー バーを使用していました。
于 2015-01-28T05:43:58.133 に答える
2
でレイアウトを使用できますQMainWindow
。中央のウィジェットを提供する必要があります。このウィジェット内では、スタンドアロンの QWidget と同じようにレイアウトを使用できます。
QMainWindow
(ステータスとツールバー)によって提供される他のものが必要ない場合は、 を作成QMenuBar
して適切なレイアウトの上部に配置し、それに を追加するだけでメニューを追加できますQMenu
。しかし、OS X や Ubuntu の Unity のように、メニュー バーをウィンドウの外側に配置するウィンドウ マネージャーでこれが機能するかどうかはわかりません。
だからQMainWindow
行くべき道であるべきです。centralWidget()
メイン ウィンドウ自体ではなく、 にレイアウトを追加してみてください。
于 2012-05-21T14:45:01.343 に答える