PAGER : トップ /メニューバーの追加

メニューバーの追加

結果

メニューバーの追加を行う。メニューバーとは上の図のように、 ウィンドウの上部に取り付けられたメニューの事である。

ソース

サンプルの2という名前のフォルダに移動すると、以下の内容のmain.cppが得られる。

#include<qapplication.h> #include<qwidget.h> #include<qmenubar.h> #include<qpopupmenu.h> int main( int argc, char **argv ){ QApplication a( argc, argv ); QWidget mainWindow(0,"mainwindow"); QMenuBar menu(&mainWindow,"menu"); QPopupMenu filemenu(&mainWindow ,"popup"); filemenu.insertItem("&Open"); filemenu.insertItem("&Save"); filemenu.insertSeparator(); filemenu.insertItem("&Quit", qApp, SLOT(quit())); menu.insertItem("&File", &filemenu); a.setMainWidget(&mainWindow ); mainWindow.show(); return a.exec(); }

前回からの変更、追加点は強調表示して示した。

解説

include

includeしたクラスは次の通りである。

QMenuBar
メニューバーを定義しているクラス。 通常、QPopupMenuクラスと一緒に使う。
insertItem関数でポップアップメニューを追加している。
QPopupMenu
メニューが押された時などに出るポップアップメニューを定義したクラス。
insertItem関数でメニュー項目を追加している。

ポップアップメニューへの追加

filemenu.insertItem("&Open"); filemenu.insertItem("&Save"); filemenu.insertSeparator(); filemenu.insertItem("&Quit", qApp, SLOT(quit()));

”&”をつけると、&の直後のキーとAltキーで操作出来るようになる。
また、insertItem関数は、

insertItem("キャプション", どのオブジェクトの, SLOT(どのスロットを呼ぶか), ショートカットキー);

のように、使う。

最後の行は、qAppのquitスロットを呼ぶように設定している。
qAppは、Qtで定義されたQApplicationオブジェクトへのポインタであり、 アプリケーションを終了する関数を呼んでいる。

メニューバーへの追加

menu.insertItem("&File", &filemenu);

ここで、定義したポップアップメニューをメニューバーに追加している。

実行結果

結果
上のようにメニューが表示された。

PAGER : トップ /メニューバーの追加