「Qtの基礎 - ウインドウ」の版間の差分
(→使用例 4) |
|||
| 152行目: | 152行目: | ||
StatusBar->removeWidget(&bar); | StatusBar->removeWidget(&bar); | ||
</syntaxhighlight> | |||
<br><br> | |||
== タブオーダーの設定 == | |||
タブオーダーを無効化するには、ウインドウにある全てのウィジェットのタブオーダーを自分自身にする。<br> | |||
<syntaxhighlight lang="c++"> | |||
QList<QWidget *>widgets = findChildren<QWidget *>(); | |||
foreach(QWidget *widget, widgets) | |||
{ | |||
widget->setTabOrder(widget, widget); | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
2021年3月10日 (水) 21:45時点における版
概要
Qtにおいて、ウィンドウのメニューバー、ツールバー、ステータスバーの作成手順を記載する。
メニュー
サブメニュー名の&の直後の文字列がニーモニックとして使用される。
下図の"File"はQMenuクラス、"Open"はQActionクラスである。
"Open"の右側にあるアイコンを選択するとサブメニューを入力できる。
サブメニューを入力すると、その親メニュー(上図では、"Open")はQMenuクラスに変更される。
追加したアクションは、Qt Designer画面下にある[アクションエディタ]ペインに表示される。
ツールバー
ここでは、ツールバーのアイコン(24x24のpng形式が標準)を作成したとする。
リソースファイルの作成
[ファイル] - [ファイル/プロジェクトの新規作成] - 画面左の[ファイルとクラス] - [Qt] - [Qt リソースファイル]を選択する。
Qtのリソースディレクトリ名をResource、ディレクトリパスはプロジェクト直下とする。
リソースエディタを開く
Qtのメイン画面左にあるプロジェクトツリーの[Resources]直下に、リソースファイル(.qrc)が表示されるので、
リソースファイルを右クリックして、[エディタで開く]を選択する。
※注意
リソースファイルの新規作成時は、自動的にリソースエディタが開く。
新規登録
以下に、リソースファイルが空の場合の登録手順を示す。
- まず、リソースエディタを開いて、[Add Prefix]ボタンを押下する。
または、プロジェクトツリーにあるリソースファイルを右クリックして、[プレフィックスの追加...]を選択する。 - プレフィックス名に
/(スラッシュ)を入力する。 - 次に、[Add Files]ボタンを押下する。
- ファイル選択ダイアログ画面にて、リソースファイルを選択する。([Ctrl] + [A]キーで全選択できる)
※注意
プロジェクトツリーにあるリソースファイルを右クリックして、[既存ファイルの追加...]を選択する場合、既定のプレフィックスが作成される。
また、プレフィックスには任意の文字列を指定することができる。
追加登録
以下に、リソースを追加する手順を示す。
- まず、リソースエディタを開いて、プレフィックスの行を選択する。
または、プロジェクトツリーにあるプレフィックス名を右クリックして、[既存のファイルの追加...]を選択する。 - [Add Files]ボタンを押下する。
- ファイル選択ダイアログ画面にて、リソースファイルを選択する。([Ctrl] + [A]キーで全選択できる)
※注意
プロジェクトツリーのプレフィックス(/)を右クリックして、[既存のファイルを追加]を選択して登録することもできる。
リソースの削除
以下に、リソースを削除する手順を示す。
- 削除するリソースの行を選択する。
- [削除]ボタンを押下して、ファイルの削除画面を表示する。
- ファイル名を確認して、[OK]ボタンを押下する。
※注意
[Delete file permanently]にチェックを入力して削除する場合、ファイルの実体も削除される。
プロジェクトツリーで削除するリソースを右クリックして、[Remove...]を選択して削除することもできる。
リソースの保存
メニューを選択してリソースファイルを上書き保存する。
[ファイル] - [<リソースファイル名>の保存]
リソースをテキストエディタで編集する
テキストエディタを使用すると、リソースファイルの内容を直接変更することができる。
プロジェクトツリーのリソースファイル(.qrc)を右クリックして、[テキストエディタで開く]を選択する。
// リソースのテキストエディタでの編集例
<RCC>
<qresource prefix="/">
<file>images/drag.png</file>
<file>images/flower.png</file>
<file>images/photo.png</file>
</qresource>
</RCC>
※注意
テキストエディタでファイルパスの設定を削除しても、ファイルの実体が削除されることはない。
リソースの使用例
リソース名の文字列の取得
プロジェクトツリーのプレフィックスの下にリソース名が表示されている。
リソース名を右クリックして、[パス ":~" をコピー]を選択する。
使用例 1
ソフトウェアのタイトルバーのアイコンとして使用する。
// プロジェクトディレクトリ直下のimagesディレクトリ内にあるflower.pngファイル
setWindowIcon(QIcon(":/images/flower.png"));
使用例 2
ラベルにセットして、画像として表示する。
// プロジェクトディレクトリ直下のimagesディレクトリ内にあるphoto.pngファイル
std::unique_ptr<QLabel> pLabel = std::make_unique<QLabel>();
pLabel->setPixmap(QPixmap(":/images/photo.png"));
使用例 3
ドラッグ&ドロップにおいて、ドラッグ中の画像として使用する。
// プロジェクトディレクトリ直下のimagesディレクトリ内にあるdrag.pngファイル
std::unique_ptr<QDrag> pDrag = std::make_unique<QDrag>(this);
qDrag->setPixmap(QPixmap(":/images/drag.png"));
使用例 3
サブメニューにアイコンを割り当てる手順を示す。
- Qt Designer画面下のアクションエディタを右クリックして、[編集...]を選択する。
- [アクションを編集]画面が開くので、[アイコン(I):]項目の[...]ボタンを押下してリソースに登録した画像ファイルを選択する。
または、[▼]ボタンを押下して、[ファイルを選択...]から画像ファイルを選択することもできる。 - アクションエディタにて、アクションの左側に選択したアイコンが表示される。
使用例 4
ツールバーにアイコンを割り当てる手順を示す。
- ツールバーの追加は、Qt Designerに表示しているウィンドウを右クリックして、[ツールバーを追加]を選択する。
- ツールバーの追加後、アクションエディタから任意のアクションをツールバーへ、ドラッグ&ドロップする。
ステータスバー
ウインドウまたはダイアログにおいて、ステータスバーを表示する。
#include <QStatusBar>
QStatusBar StatusBar;
StatusBar->showMessage(tr("ステータスを表示中..."));
ステータスバーにプログレスバーを表示する場合、以下のように記述する。
#include <QStatusBar>
QStatusBar StatusBar;
QProgressBar bar;
StatusBar->addWidget(&bar);
bar.setMinimum(0);
bar.setMaximum(100);
for(int i = 0; i < 100; i++)
{
bar.setValue(i);
// 以下に処理を記述
// ...
}
StatusBar->removeWidget(&bar);
タブオーダーの設定
タブオーダーを無効化するには、ウインドウにある全てのウィジェットのタブオーダーを自分自身にする。
QList<QWidget *>widgets = findChildren<QWidget *>();
foreach(QWidget *widget, widgets)
{
widget->setTabOrder(widget, widget);
}
