このページは現在作成途中です。
Qt creatorでメインウィンドウを作成すると、メニュー、ステータスバーが自動的に含まれるようになっていますが、
ツールバーは作成されません。
メニュー
“&”の直後の文字がニモニックとして使用されます。
上の図の”File”はQMenu
クラス、”Open”はQAction
クラスになります。
“Open”の右側のアイコンをクリックするとサブメニューを入力できるようになります。
サブメニューを入力すると、その親メニューはQMenu
クラスに変更されます。
追加されたアクションは、右下のアクションエディタに表示されます。
ツールバー
リソースファイルを作成する場合は結構手間です。
ツールバーのアイコン(24X24のpngが標準らしい?)を作成したとします。
リソースファイルを作成
右下のウィンドウのタブから「リソースブラウザ」タブを開き、鉛筆ボタンを押します。
左下の「新規作成」ボタンを押し、リソースファイル(.qrc)を作成します。
作成したら、中央下の「プレフィックスを追加」ボタンを押します。
適当な名称のプレフィックスを追加したら、その隣の「ファイルを追加」ボタンを押し、作成したアイコンを追加します。
追加すると以下のように表示されます。
アイコンリソースを登録したら、次にアクションエディタを表示し、アクションにアイコンを割り当てます。
すでに作成されたアクションに割り当てる場合はそのアクションをダブルクリックします。新規作成する場合は「新規」ボタンを押します。
どちらも選択すると似たようなダイアログ画表示されます。このダイアログの中央右側の「▼」を押し、メニューから「リソースを選択」を選択します。
リソースを作成しない場合は、ここで「ファイルを選択」を選択してアイコンファイルを割り当てることもできます。
リソースから選択する場合は、以下のダイアログが表示されるので、アイコンを選択して【OK】ボタンを押します。
アクションエディタで、アクションの左側にアイコンが追加されたのを確認します。
続いて、メインウィンドウにツールバーを追加します。
ツールバーの追加は、左側のウィジェットボックスからではなく、デザイン中のウィンドウ上を右クリックして表示されるポップアップメニューから、
「ツールバーを追加」メニューを選択します。
ツールバーを追加したら、アクションエディタからアクションをドラッグしてツールバーへドロップします。
図のようにツールボタンが追加されます。
アクションに対応するシグナル/スロットを作成
普通はメニューやツールバーに対応する独自のスロットを用意したいはずですが、
Qtデザイナのシグナル/スロットエディタにはどうもスロットの新規作成機能はなさそうです。
独自のスロットを追加するには、まずデザイン中のウィンドウを右クリックして表示されるポップアップメニューから「シグナル/スロットを変更」を選択します。
選択すると、右クリックしたウィンドウ(この場合はMainWindow)に現在用意されているシグナルとスロットの一覧が表示されます。
スロットを追加するには、スロット一覧の下にある「+」ボタンを押します。
新規にスロットが作成されるので、適当な名前を入力して【OK】を押します。
スロットを作成したら、アクションにスロットを割り当てます。シグナル/スロットエディタで【+】ボタンを押します。
追加すると以下のようにシグナル/スロットの組が追加されますので、それぞれ選択していきます。
発信者は先ほど追加したアクション、シグナルはtriggered()
、
受信者はMainWindow、スロットに先ほど作成したスロットを、それぞれドロップダウンメニューから選択します。
以上でメニュー、ツールバーに対する設定は完了です。あとは作成したスロットの中身を埋めていきます。
ステータスバー
ステータスバーにテキストを表示するには以下のようにします。
statusbar->showMessage( tr(" ahoka ... ") );
定番の、プログレスバーをステータスバーに表示する方法は以下のようにします。
QProgressBar bar; statusbar->addWidget( &bar ); bar.setMinimum( 0 ); bar.setMaximum( 100 ); for ( int i = 0; i < 100; i++ ) { bar.setValue( i ); // 何か処理 } statusbar->removeWidget( &bar );