ここでは、前回作成したクラスに、メニューバーを追加する。
結果は第2章と変わらない。
サンプルの4という名前のフォルダの中に、以下の内容のファイルがある。
main関数に変更点はないので、リンクから削除した。
#include<qwidget.h> #include<qmenubar.h> #include<qpopupmenu.h> #include<qapplication.h> class MainWindow : public QWidget{ public: MainWindow(QWidget* parent, const char *name); private: QMenuBar *_menu; QPopupMenu *_filemenu; };
必要なヘッダをincludeし、privateのメンバ変数にQMenuBarとQPopupMenu オブジェクトへのポインタを宣言した。
MainWindow::MainWindow(QWidget* parent, const char* name) :QWidget(parent, name){ _menu = new QMenuBar(this, "menubar"); _filemenu = new QPopupMenu(this, "filemenu"); _filemenu->insertItem("&Open"); _filemenu->insertItem("&Save"); _filemenu->insertSeparator(); _filemenu->insertItem("&Quit", qApp, SLOT(quit()), ALT+Key_F4); _menu->insertItem("&File", _filemenu); }
コンストラクタに、メニューを実装するための処理を記述した。
ポインタ型変数のメンバ関数を呼び出すには、"."(ドット)ではなく、
"->"(矢印演算子)を用いる。
その他には、以前の物と変更はない。
実行結果は第2章と変わらない。