MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Qtの基礎 - ウインドウのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Qtの基礎 - ウインドウ
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Qtにおいて、ウィンドウのメニューバー、ツールバー、ステータスバーの作成手順を記載する。<br> <br><br> == メニュー == サブメニュー名の<code>&</code>の直後の文字列がニーモニックとして使用される。<br> 下図の"File"は<code>QMenu</code>クラス、"Open"は<code>QAction</code>クラスである。<br> [[ファイル:Qt Basic Window 1.jpg|フレームなし|中央]] <br> "Open"の右側にあるアイコンを選択するとサブメニューを入力できる。<br> サブメニューを入力すると、その親メニュー(上図では、"Open")は<code>QMenu</code>クラスに変更される。<br> <br> 追加したアクションは、Qt Designer画面下にある[アクションエディタ]ペインに表示される。<br> [[ファイル:Qt Basic Window 2.jpg|フレームなし|中央]] <br><br> == ツールバー == ここでは、ツールバーのアイコン(24x24のpng形式が標準)を作成したとする。<br> <br> ==== リソースファイルの作成 ==== [ファイル] - [ファイル/プロジェクトの新規作成] - 画面左の[ファイルとクラス] - [Qt] - [Qt リソースファイル]を選択する。<br> Qtのリソースディレクトリ名をResource、ディレクトリパスはプロジェクト直下とする。<br> <br> ==== リソースエディタを開く ==== Qtのメイン画面左にあるプロジェクトツリーの[Resources]直下に、リソースファイル(.qrc)が表示されるので、<br> リソースファイルを右クリックして、[エディタで開く]を選択する。<br> <br> <u>※注意</u><br> <u>リソースファイルの新規作成時は、自動的にリソースエディタが開く。</u><br> <br> ==== 新規登録 ==== 以下に、リソースファイルが空の場合の登録手順を示す。<br> # まず、リソースエディタを開いて、[Add Prefix]ボタンを押下する。<br>または、プロジェクトツリーにあるリソースファイルを右クリックして、[プレフィックスの追加...]を選択する。 # プレフィックス名に<code>/</code>(スラッシュ)を入力する。 # 次に、[Add Files]ボタンを押下する。 # ファイル選択ダイアログ画面にて、リソースファイルを選択する。([Ctrl] + [A]キーで全選択できる) <br> <u>※注意</u><br> <u>プロジェクトツリーにあるリソースファイルを右クリックして、[既存ファイルの追加...]を選択する場合、既定のプレフィックスが作成される。</u><br> <u>また、プレフィックスには任意の文字列を指定することができる。</u><br> <br> ==== 追加登録 ==== 以下に、リソースを追加する手順を示す。<br> # まず、リソースエディタを開いて、プレフィックスの行を選択する。<br>または、プロジェクトツリーにあるプレフィックス名を右クリックして、[既存のファイルの追加...]を選択する。 # [Add Files]ボタンを押下する。 # ファイル選択ダイアログ画面にて、リソースファイルを選択する。([Ctrl] + [A]キーで全選択できる) <br> <u>※注意</u><br> <u>プロジェクトツリーのプレフィックス(/)を右クリックして、[既存のファイルを追加]を選択して登録することもできる。</u><br> <br> ==== リソースの削除 ==== 以下に、リソースを削除する手順を示す。<br> # 削除するリソースの行を選択する。 # [削除]ボタンを押下して、ファイルの削除画面を表示する。 # ファイル名を確認して、[OK]ボタンを押下する。 <br> <u>※注意</u><br> <u>[Delete file permanently]にチェックを入力して削除する場合、ファイルの実体も削除される。</u><br> <u>プロジェクトツリーで削除するリソースを右クリックして、[Remove...]を選択して削除することもできる。</u><br> <br> ==== リソースの保存 ==== メニューを選択してリソースファイルを上書き保存する。<br> [ファイル] - [<リソースファイル名>の保存]<br> <br><br> == リソースをテキストエディタで編集する == テキストエディタを使用すると、リソースファイルの内容を直接変更することができる。<br> <br> プロジェクトツリーのリソースファイル(.qrc)を右クリックして、[テキストエディタで開く]を選択する。<br> <syntaxhighlight lang="xml"> // リソースのテキストエディタでの編集例 <RCC> <qresource prefix="/"> <file>images/drag.png</file> <file>images/flower.png</file> <file>images/photo.png</file> </qresource> </RCC> </syntaxhighlight> <br> <u>※注意</u><br> <u>テキストエディタでファイルパスの設定を削除しても、ファイルの実体が削除されることはない。</u><br> <br><br> == リソースの使用例 == ==== リソース名の文字列の取得 ==== プロジェクトツリーのプレフィックスの下にリソース名が表示されている。<br> <br> リソース名を右クリックして、[パス ":~" をコピー]を選択する。<br> <br> ==== 使用例 1 ==== ソフトウェアのタイトルバーのアイコンとして使用する。<br> <syntaxhighlight lang="c++"> // プロジェクトディレクトリ直下のimagesディレクトリ内にあるflower.pngファイル setWindowIcon(QIcon(":/images/flower.png")); </syntaxhighlight> <br> ==== 使用例 2 ==== ラベルにセットして、画像として表示する。<br> <syntaxhighlight lang="c++"> // プロジェクトディレクトリ直下のimagesディレクトリ内にあるphoto.pngファイル std::unique_ptr<QLabel> pLabel = std::make_unique<QLabel>(); pLabel->setPixmap(QPixmap(":/images/photo.png")); </syntaxhighlight> <br> ==== 使用例 3 ==== ドラッグ&ドロップにおいて、ドラッグ中の画像として使用する。<br> <syntaxhighlight lang="c++"> // プロジェクトディレクトリ直下のimagesディレクトリ内にあるdrag.pngファイル std::unique_ptr<QDrag> pDrag = std::make_unique<QDrag>(this); qDrag->setPixmap(QPixmap(":/images/drag.png")); </syntaxhighlight> <br> ==== 使用例 3 ==== サブメニューにアイコンを割り当てる手順を示す。<br> # Qt Designer画面下のアクションエディタを右クリックして、[編集...]を選択する。 # [アクションを編集]画面が開くので、[アイコン(I):]項目の[...]ボタンを押下してリソースに登録した画像ファイルを選択する。<br>または、[▼]ボタンを押下して、[ファイルを選択...]から画像ファイルを選択することもできる。 # アクションエディタにて、アクションの左側に選択したアイコンが表示される。 <br> ==== 使用例 4 ==== ツールバーにアイコンを割り当てる手順を示す。<br> # ツールバーの追加は、Qt Designerに表示しているウィンドウを右クリックして、[ツールバーを追加]を選択する。 # ツールバーの追加後、アクションエディタから任意のアクションをツールバーへ、ドラッグ&ドロップする。 <br><br> == ステータスバー == ウインドウまたはダイアログにおいて、ステータスバーを表示する。<br> <syntaxhighlight lang="c++"> #include <QStatusBar> QStatusBar StatusBar; StatusBar->showMessage(tr("ステータスを表示中...")); </syntaxhighlight> <br> ステータスバーにプログレスバーを表示する場合、以下のように記述する。<br> <syntaxhighlight lang="c++"> #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); </syntaxhighlight> <br><br> == タブオーダーの設定 == タブオーダーを無効化するには、ウインドウにある全てのウィジェットのタブオーダーを自分自身にする。<br> <syntaxhighlight lang="c++"> QList<QWidget *>widgets = findChildren<QWidget *>(); foreach(QWidget *widget, widgets) { widget->setTabOrder(widget, widget); } </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:Qt]]
Qtの基礎 - ウインドウ
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse