13,039
回編集
編集の要約なし |
|||
| 174行目: | 174行目: | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
QString DirName = QFileDialog::getExistingDirectory(); | QString DirName = QFileDialog::getExistingDirectory(); | ||
</syntaxhighlight> | |||
<br><br> | |||
== 色選択ダイアログ(QColorDialogクラス) == | |||
RGBを10進または16進で入力できる色選択ダイアログである。<br> | |||
<br> | |||
<code>getColor</code>メソッドを使用すると、Qt標準の色選択ダイアログを表示する。<br> | |||
[書式] getColor(色, 親ウインドウのポインタ, ダイアログのタイトル, オプション) | |||
<br> | |||
以下の例では、初期表示として、青で透明度を指定している。<br> | |||
<br> | |||
<code>getColor</code>メソッドの戻り値は、選択した色情報クラスである。(キャンセルした場合、Validがfalseになる)<br> | |||
色は、#AARRGGBB形式、#RRGGBB形式、Qt定義色(<code>Qt::red</code>等)で指定する。<br> | |||
透明度(AA、アルファチャンネル)を省略する時、初期値は255となる。<br> | |||
<code>ShowAlphaChannel</code>オプションを指定しない場合、AAに初期値を指定しても戻り値は固定でFF(255)となる。<br> | |||
<syntaxhighlight lang="c++"> | |||
QColor color = QColorDialog::getColor("#800a64c8", this, tr("色選択"), QColorDialog::ShowAlphaChannel); | |||
if(color.isValid()) | |||
{ | |||
// color.name(); → "#0a64c8" (#RRGGBB) | |||
// color.name(QColor::HexArgb); → "#800a64c8" (#AARRGGBB) | |||
// int r, g, b, a; | |||
// color.getRgb(&r, &g, &b, &a); → r=10, g=100, b=200, a=128 | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
<center> | |||
QColorDialogのオプション(enum QColorDialog::ColorDialogOption)<br> | |||
{| class="wikitable" style="background-color:#fefefe;" | |||
|- | |||
! style="background-color:#00ffff;" | オプション名 | |||
! style="background-color:#00ffff;" | 値 | |||
! style="background-color:#00ffff;" | 説明 | |||
|- | |||
| ShowAlphaChannel || 0x00000001 || アルファチャンネル(透明度)を表示する。 | |||
|- | |||
| NoButtons || 0x00000002 || OKとキャンセルのボタンを表示しない。<br>(ライブダイアログで役立つ) | |||
|- | |||
| DontUseNativeDialog || 0x00000004 || OS標準ではなくQt標準の色選択を使用する。<br>(指定しない場合、有効)。 | |||
|} | |||
</center> | |||
<br> | |||
<code>getColor</code>メソッドの引数を全て省略する時、標準のダイアログが表示される。<br> | |||
この時、標準ダイアログのタイトルは"Select Color"、色は白(#ffffff)、アルファチャンネルの項目は無い。<br> | |||
<syntaxhighlight lang="c++"> | |||
QColor color = QColorDialog::getColor(); | |||
</syntaxhighlight> | |||
<br><br> | |||
== フォント選択ダイアログ(QFontDialog) == | |||
フォント選択ダイアログは、フォントを選択できるダイアログである。<br> | |||
<code>QFontDialog</code>クラスの<code>getFont</code>メソッドは、Qt標準のフォント選択ダイアログを表示する。<br> | |||
[書式1] getFont(結果, 初期フォント, 親ウインドウのポインタ, ダイアログのタイトル, オプション) | |||
[書式2] getFont(結果, 親ウインドウのポインタ) | |||
<br> | |||
以下の例では、初期フォントを18pxのCourier、等幅フォントとしている。<br> | |||
<code>getFont</code>メソッドの戻り値は、選択したフォント情報のクラスである。(キャンセルした場合、第1引数はfalseとなる)<br> | |||
[Esc]キーを押下する場合は、キャンセルしたものと見なされる。<br> | |||
<syntaxhighlight lang="c++"> | |||
bool ok; | |||
QFont font = QFontDialog::getFont(&ok, QFont("Courier", 18), this, tr("フォント選択"), QFontDialog::MonospacedFonts); | |||
if(ok) | |||
{ | |||
// font.family(); → "Courier" | |||
// font.pointSize(); → 18 | |||
// font.italic(); → false (true:Font styleがItalic) | |||
// font.bold(); → false (true:Font styleがBold) | |||
// font.weight(); → 50 (bold()=trueの時は75) | |||
// font.strikeOut(); → false (true:EffectsのstrikeOutオン) | |||
// font.underline(); → false (true:Effectsのunderlineオン) | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
<center> | |||
QFontDialogクラスのオプション(enum QFontDialog::FontDialogOption)<br> | |||
{| class="wikitable" style="background-color:#fefefe;" | |||
|- | |||
! style="background-color:#00ffff;" | オプション名 | |||
! style="background-color:#00ffff;" | 値 | |||
! style="background-color:#00ffff;" | 説明 | |||
|- | |||
| NoButtons || 0x00000001 || [OK]ボタンと[キャンセル]ボタンを表示しない。<br>(ライブダイアログで役立つ)<br><u>ただし、ダイアログ右上の[閉じる]ボタンが使用できなくなる。</u> | |||
|- | |||
| DontUseNativeDialog || 0x00000002 || OS標準ではなくQt標準のフォント選択を使用する。<br>指定しない場合、Qt標準のフォント選択を使用する。 | |||
|- | |||
| ScalableFonts || 0x00000004 || スケーラブルフォントを表示する。<br>スケーラブルフォントとは、拡大縮小しても精度の変わらないフォントである。 | |||
|- | |||
| NonScalableFonts || 0x00000008 || スケーラブルフォント以外を表示する。 | |||
|- | |||
| MonospacedFonts || 0x00000010 || 等幅フォントを表示する。 | |||
|- | |||
| ProportionalFonts || 0x00000020 || 可変幅フォントを表示する。 | |||
|} | |||
</center> | |||
<br> | |||
第1引数は必須であり、他の引数を全て省略する時、標準のフォント選択ダイアログが表示される。<br> | |||
この時、ダイアログのタイトルは"Select Font"、使用可能なフォントをアルファベット順に並べて、その先頭が選択された状態となる。<br> | |||
<syntaxhighlight lang="c++"> | |||
bool ok; | |||
QFont font = QFontDialog::getFont(&ok); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||