<< QT && C++ トップ

メニューバーの作り方

メニューを作成

QMenuクラスによりメニューバーにメニューを作ります。ここではmakeMenu()内に以下の内容を追加してメニューを作成しました。

makeMenu関数内
void MainWin::makeMenu()
{
	//メニューのタイトル
	QString title1 = QString::fromLocal8Bit("ファイル");
	QString title2 = QString::fromLocal8Bit("ヘルプ");

	QMenu* menu1 = QMenu(title1, this);
	QMenu* menu2 = QMenu(title2, this)

	//メニューバーにメニュー追加
	menuBar()->addMenu(menu1);
	menuBar()->addMenu(menu2);
}

このように初めにQMenuのオブジェクトを作り、それをaddMenu関数でメニューバーに追加しています。QMenuクラスのコンストラクタの作り方はラベルを作った時と同様です。

このプログラムを実行すると、「ファイル」と「ヘルプ」が表示された2つのメニューがウインドウに追加されます。

プルダウンメニューを作り方

一般にメニューバーのメニューを押した場合、そのメニューの下にぶら下がるようにプルダウンメニューが出てくるのが普通です。そのようなプルダウンメニューを作るにはメニューの中にメニューまたは項目を追加します。メニューはその下にさらに子メニューを持ちますが、項目は文字列のみを持ちそこで終わりっています。

プルダウンメニューを作るためにmakeMenu関数をさらに以下のように改造しました。

makeMenu関数
void MainWin::makeMenu()
{
	QString title1 = QString::fromLocal8Bit("ファイル");
	QString title2 = QString::fromLocal8Bit("ヘルプ");
	//親メニュー
	QMenu* menu1 = new QMenu(title1, this);
	QMenu* menu2 = new QMenu(title2, this);

	//子メニューの作成
	QMenu* m1_open = new QMenu(QString::fromLocal8Bit("開く"));

	//親メニューに子メニューの追加
	menu1->addMenu(m1_open);

	//親メニューに項目の追加
	menu1->addAction(QString::fromLocal8Bit("終了"));
	menu2->addAction(QString::fromLocal8Bit("ヘルプ"));

	menuBar()->addMenu(menu1);
	menuBar()->addMenu(menu2);
}

このソースファイルでは menu1 に「開く」と「閉じる」のタイトルのついたメニューと項目、menu2には「ヘルプ」のタイトルのついた項目を追加しました。

メニューを追加する際は親メニューのaddMenu関数を使って子メニューを追加し、項目を追加するときはaddAction関数を使います。それらの関数は以下の書式を持ちます

関連項目
プライバシーポリシー