QMessageBox Class

QMessageBox クラスは、ユーザーに情報を伝えたり、ユーザーに質問して回答を受け取ったりするためのモーダルダイアログを提供します。詳細...

Header: #include <QMessageBox>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: QDialog

パブリックタイプ

enum ButtonRole { InvalidRole, AcceptRole, RejectRole, DestructiveRole, ActionRole, …, ResetRole }
enum Icon { NoIcon, Question, Information, Warning, Critical }
(since 6.6) enum class Option { DontUseNativeDialog }
flags Options
enum StandardButton { Ok, Open, Save, Cancel, Close, …, ButtonMask }
flags StandardButtons

プロパティ

パブリック関数

QMessageBox(QWidget *parent = nullptr)
QMessageBox(QMessageBox::Icon icon, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = NoButton, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint)
virtual ~QMessageBox()
void addButton(QAbstractButton *button, QMessageBox::ButtonRole role)
QPushButton *addButton(QMessageBox::StandardButton button)
QPushButton *addButton(const QString &text, QMessageBox::ButtonRole role)
QAbstractButton *button(QMessageBox::StandardButton which) const
QMessageBox::ButtonRole buttonRole(QAbstractButton *button) const
QList<QAbstractButton *> buttons() const
QCheckBox *checkBox() const
QAbstractButton *clickedButton() const
QPushButton *defaultButton() const
QString detailedText() const
QAbstractButton *escapeButton() const
QMessageBox::Icon icon() const
QPixmap iconPixmap() const
QString informativeText() const
void open(QObject *receiver, const char *member)
QMessageBox::Options options() const
void removeButton(QAbstractButton *button)
void setCheckBox(QCheckBox *cb)
void setDefaultButton(QMessageBox::StandardButton button)
void setDefaultButton(QPushButton *button)
void setDetailedText(const QString &text)
void setEscapeButton(QAbstractButton *button)
void setEscapeButton(QMessageBox::StandardButton button)
void setIcon(QMessageBox::Icon)
void setIconPixmap(const QPixmap &pixmap)
void setInformativeText(const QString &text)
(since 6.6) void setOption(QMessageBox::Option option, bool on = true)
void setOptions(QMessageBox::Options options)
void setStandardButtons(QMessageBox::StandardButtons buttons)
void setText(const QString &text)
void setTextFormat(Qt::TextFormat format)
void setTextInteractionFlags(Qt::TextInteractionFlags flags)
void setWindowModality(Qt::WindowModality windowModality)
void setWindowTitle(const QString &title)
QMessageBox::StandardButton standardButton(QAbstractButton *button) const
QMessageBox::StandardButtons standardButtons() const
(since 6.6) bool testOption(QMessageBox::Option option) const
QString text() const
Qt::TextFormat textFormat() const
Qt::TextInteractionFlags textInteractionFlags() const

パブリックスロット

virtual int exec() override

シグナル

void buttonClicked(QAbstractButton *button)

静的パブリックメンバ

void about(QWidget *parent, const QString &title, const QString &text)
void aboutQt(QWidget *parent, const QString &title = QString())
QMessageBox::StandardButton critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)
QMessageBox::StandardButton information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)
QMessageBox::StandardButton question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = StandardButtons(Yes | No), QMessageBox::StandardButton defaultButton = NoButton)
QMessageBox::StandardButton warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)

再実装された保護された関数

virtual void changeEvent(QEvent *ev) override
virtual void closeEvent(QCloseEvent *e) override
virtual bool event(QEvent *e) override
virtual void keyPressEvent(QKeyEvent *e) override
virtual void resizeEvent(QResizeEvent *event) override
virtual void showEvent(QShowEvent *e) override

マクロ

QT_REQUIRE_VERSION(int argc, char **argv, const char *version)

詳細説明

メッセージボックスは、ユーザーに状況を知らせるための一次text 、状況をさらに説明するためのinformative text 、ユーザーが要求した場合にさらに多くのデータを提供するためのオプションdetailed text

メッセージ・ボックスには、icon と、ユーザーからの応答を受け付けるためのstandard buttons も表示できます。

QMessageBox を使用するための API には、プロパティ・ベースの API と静的関数の 2 つがあります。静的関数のいずれかを呼び出すのは、より単純なアプローチですが、プロパティベースのAPIを使用するよりも柔軟性に欠け、結果はあまり有益ではありません。プロパテ ィベースの API を使用する こ と を推奨 し ます。

プ ロ パテ ィ ベース API

プロパティ・ベースの API を使用するには、QMessageBox のインスタンスを構築し、必要なプロパティを設定し、exec() を呼び出してメッセージを表示します。最も単純な構成は、message text プロパティのみを設定することです。

QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.exec();

メッセージ・ボックスを閉じるには、OK ボタンをクリックする必要があります。メッセージ・ボックスが解除されるまで、GUIの他の部分はブロックされます。

ユーザーにイベントを警告するだけよりも良い方法は、ユーザーにそのイベントに対して何をすべきかを尋ねることです。

standard buttons プロパティに、ユーザーの応答として必要なボタンのセットを設定します。ボタンは、StandardButtons の値をビット OR 演算子で組み合わせて指定します。ボタンの表示順序はプラットフォームに依存します。例えば、WindowsではSaveCancel の左に表示されますが、macOSでは順序が逆になります。標準ボタンの1つをdefault button にマークしてください。

informative text プロパティは、ユーザーが適切なアクションを選択できるように、追加のコンテキストを追加するために使用できます。

QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save);
int ret = msgBox.exec();

exec() スロットは、クリックされたボタンのStandardButtons 値を返します。

switch (ret) {
  case QMessageBox::Save:
      // Save was clicked
      break;
  case QMessageBox::Discard:
      // Don't Save was clicked
      break;
  case QMessageBox::Cancel:
      // Cancel was clicked
      break;
  default:
      // should never be reached
      break;
}

ユーザが適切なアクションを選択できるように、より多くの情報を与えるには、detailed text プロパティを設定します。プラットフォームによっては、detailed textShow Details... ボタンをクリックする必要があります。

Show Details... ボタンをクリックすると、詳細テキストが表示されます。

リッチテキストとテキスト形式プロパティ

detailed text プロパティは常にプレーンテキストとして解釈されます。main textinformative text プロパティは、プレーンテキストかリッチテキストのいずれかにすることができます。こ れ ら の文字列は、text format プ ロ パテ ィ の設定に従っ て解釈 さ れます。デフォルト設定はauto-text です。

XMLメタ・キャラクタを含むプレーン・テキスト文字列の中には、自動テキストrich text detection test が失敗し、プレーン・テキスト文字列がリッチ・テキストとして誤って解釈される場合があることに注意してください。このようなまれなケースでは、Qt::convertFromPlainText() を使用してプレーン・テキスト文字列を視覚的に等価なリッチ・テキスト文字列に変換するか、setTextFormat() を使用してtext format プロパティを明示的に設定してください。

重大度レベルとアイコン・ピクスマップ・プロパティ

QMessageBoxは4つの定義済みのメッセージの重大度レベル、またはメッセージタイプをサポートしています。icon プロパティをpredefined icons のいずれかに設定することで、4つの定義済みメッセージタイプのいずれかを指定します。 以下のルールはガイドラインです:

Question通常業務中に質問をする場合。

Information通常の操作に関する情報を報告する場合。

Warning重要でないエラーを報告する。

Critical重大なエラーを報告する場合。

Predefined icons は QMessageBox では定義されていませんが、スタイルによって提供されます。デフォルト値は です。メッセージ・ボックスは、それ以外の場合はすべて同じです。標準アイコンを使用する場合は、表で推奨されているものを使用するか、プラットフォームのスタイル・ガイドラインで推奨されているものを使用してください。標準アイコンのどれもがメッセージ・ボックスに適していない場合は、 プロパティを設定する代わりに、 プロパティを設定することで、カスタム・アイコンを使用することができます。No Icon icon icon pixmap

まとめると、アイコンを設定するには、標準アイコンの場合はsetIcon() をカスタムアイコンの場合はsetIconPixmap()使用します。

静的関数API

informative text detailed text 静的関数 API を使用したメッセージ・ボックスの作成は便利ですが、プロパティ・ベースの API を使用するよりも柔軟性に欠けます。この回避策として、title パラメータをメッセージ・ボックスのメイン・テキストとして使い、text パラメータをメッセージ・ボックスのインフォメーティブ・テキストとして使う方法があります。これには、メッセージ・ボックスが読みにくくなるという明らかな欠点があるため、プラットフォーム・ガイドラインはこれを推奨していません。Microsoft Windows User Interface Guidelinesでは、application namewindow's title として使用することを推奨しています。つまり、メイン・テキストの他に情報テキストがある場合は、text パラメータに連結する必要があります。

静的関数のシグネチャは、ボタンパラメータに関して変更されており、standard buttonsdefault button の設定に使われるようになっています。

静的関数は、information ()、question ()、warning ()、critical ()メッセージ・ボックスの作成に使用できます。

int ret = QMessageBox::warning(this, tr("My Application"),
                               tr("The document has been modified.\n"
                                  "Do you want to save your changes?"),
                               QMessageBox::Save | QMessageBox::Discard
                               | QMessageBox::Cancel,
                               QMessageBox::Save);

標準ダイアログの例では、QMessageBox と他の組み込み Qt ダイアログの使い方を示しています。

高度な使い方

standard buttons があなたのメッセージ・ボックスにとって柔軟性に欠ける場合、addButton() オーバーロードを使用することができます。このオーバーロードは text とButtonRole を受け取り、カスタム・ボタンを追加します。ButtonRole は、QMessageBox が画面上のボタンの順序を決定するために使用します(プラットフォームによって異なります)。exec() を呼び出した後、clickedButton() の値をテストできます。例えば

QMessageBox msgBox;
QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole);
QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort);

msgBox.exec();

if (msgBox.clickedButton() == connectButton) {
    // connect
} else if (msgBox.clickedButton() == abortButton) {
    // abort
}

デフォルト・キーとエスケープ・キー

デフォルト・ボタン(すなわち、Enter が押されたときにアクティブになるボタン)は、setDefaultButton ()を使用して指定することができる。デフォルト・ボタンが指定されていない場合、QMessageBox はメッセージ・ボックスで使用されているボタンのbutton roles に基づいてボタンを探そうとします。

エスケープ・ボタン(Esc が押されたときにアクティブになるボタン)は、setEscapeButton ()を使用して指定できます。エスケープボタンが指定されていない場合、QMessageBoxはこれらのルールを使ってエスケープボタンを見つけようとします:

  1. ボタンが1つしかない場合、Esc が押されたときにアクティブになるボタンです。
  2. Cancel ボタンがある場合、それはEsc が押されたときにアクティブになるボタンです。
  3. the Reject rolethe No role のどちらかを持つボタンが1つだけある場合、それはEsc が押されたときに起動されるボタンです。

これらのルールでエスケープボタンが決定できない場合、Esc を押しても効果はありません。

QDialogButtonBox および標準ダイアログの例も参照して ください。

メンバ型ドキュメント

enum QMessageBox::ButtonRole

この列挙型は、ボタンボックスのボタンを記述するために使用できる役割を記述します。これらのロールの組み合わせは、その動作の異なる側面を記述するために使用されるフラグとして使用されます。

定数説明
QMessageBox::InvalidRole-1ボタンは無効です。
QMessageBox::AcceptRole0ボタンをクリックすると、ダイアログは受理されます(例えば、OK)。
QMessageBox::RejectRole1ボタンをクリックすると、ダイアログは拒否されます(例:キャンセル)。
QMessageBox::DestructiveRole2ボタンをクリックすると、破壊的変更(変更の破棄など)が行われ、ダイアログが閉じます。
QMessageBox::ActionRole3ボタンをクリックすると、ダイアログ内の要素が変更されます。
QMessageBox::HelpRole4ボタンをクリックすると、ヘルプを要求することができます。
QMessageBox::YesRole5ボタンは "Yes "のようなボタンです。
QMessageBox::NoRole6ボタンは「いいえ」のようなボタンです。
QMessageBox::ApplyRole8ボタンは現在の変更を適用します。
QMessageBox::ResetRole7ボタンはダイアログのフィールドをデフォルト値にリセットします。

StandardButtonも参照してください

enum QMessageBox::Icon

この列挙型には以下の値があります:

定数説明
QMessageBox::NoIcon0メッセージ・ボックスにアイコンはありません。
QMessageBox::Question4メッセージが質問していることを示すアイコン。
QMessageBox::Information1メッセージに異常がないことを示すアイコン。
QMessageBox::Warning2メッセージが警告であるが、対処可能であることを示すアイコン。
QMessageBox::Critical3メッセージが重大な問題であることを示すアイコン。

[since 6.6] enum class QMessageBox::Option
flags QMessageBox::Options

定数説明
QMessageBox::Option::DontUseNativeDialog0x00000001ネイティブメッセージダイアログを使用しません。

この列挙型は Qt 6.6 で導入されました。

Options 型はQFlags<Option> の typedef です。Option 値の OR の組み合わせを格納します。

enum QMessageBox::StandardButton
flags QMessageBox::StandardButtons

これらの列挙型は、標準ボタンのフラグを記述します。各ボタンにはButtonRole が定義されています。

定数説明
QMessageBox::Ok0x00000400OK" ボタンは、AcceptRole で定義されています。
QMessageBox::Open0x00002000AcceptRole で定義された「開く」ボタン。
QMessageBox::Save0x00000800AcceptRole で定義された "保存 "ボタン。
QMessageBox::Cancel0x00400000RejectRole で定義された「キャンセル」ボタン。
QMessageBox::Close0x00200000RejectRole で定義された「閉じる」ボタン。
QMessageBox::Discard0x00800000プラットフォームによって異なるが、DestructiveRole で定義された「破棄」または「保存しない」ボタン。
QMessageBox::Apply0x02000000ApplyRole
QMessageBox::Reset0x04000000ResetRole で定義された「リセット」ボタン。
QMessageBox::RestoreDefaults0x08000000ResetRole で定義されている「デフォルトに戻す」ボタン。
QMessageBox::Help0x01000000HelpRole で定義された「ヘルプ」ボタン。
QMessageBox::SaveAll0x00001000AcceptRole で定義された「すべて保存」ボタン。
QMessageBox::Yes0x00004000YesRole で定義された「はい」ボタン。
QMessageBox::YesToAll0x00008000YesRole で定義された「Yes to All」ボタン。
QMessageBox::No0x00010000NoRole で定義された「いいえ」ボタン。
QMessageBox::NoToAll0x00020000NoRole で定義された「No to All」ボタン。
QMessageBox::Abort0x00040000RejectRole で定義された「中止」ボタン。
QMessageBox::Retry0x00080000AcceptRole で定義される「再試行」ボタン。
QMessageBox::Ignore0x00100000AcceptRole で定義された「無視」ボタン。
QMessageBox::NoButton0x00000000無効なボタン。

以下の値は廃止されました:

定数説明
QMessageBox::YesAllYesToAll代わりに YesToAll を使用してください。
QMessageBox::NoAllNoToAll代わりに NoToAll を使用してください。
QMessageBox::Default0x00000100代わりにinformation()、warning() などのdefaultButton 引数を使用するか、setDefaultButton() を呼び出します。
QMessageBox::Escape0x00000200代わりにsetEscapeButton() を呼び出す。
QMessageBox::FlagMask0x00000300
QMessageBox::ButtonMask~FlagMask

StandardButtons型はQFlags<StandardButton>のtypedefです。StandardButtonの値のORの組み合わせを格納します。

ButtonRole およびstandardButtonsも参照してください

プロパティ Documentation

detailedText : QString

このプロパティは、詳細領域に表示されるテキストを保持します。

テキストはプレーンテキストとして解釈されます。

デフォルトでは、このプロパティには空の文字列が格納されます。

アクセス関数:

QString detailedText() const
void setDetailedText(const QString &text)

QMessageBox::text およびQMessageBox::informativeTextも参照してください

icon : Icon

このプロパティは、メッセージ・ボックスのアイコンを保持します。

メッセージ・ボックスのアイコンは、いずれかの値で指定できます:

デフォルトはQMessageBox::NoIcon です。

実際のアイコン表示に使用される pixmap は、現在のGUI style に依存します。また、icon pixmap プロパティを設定することで、アイコンにカスタム・ピクセルマップを設定することもできます。

アクセス関数:

QMessageBox::Icon icon() const
void setIcon(QMessageBox::Icon)

iconPixmapも参照

iconPixmap : QPixmap

このプロパティは、現在のアイコンを保持します。

メッセージ・ボックスが現在使用しているアイコン。すべての GUI スタイルで適切な pixmap を描画するのは難しいことが多いので、プラットフォームごとに異なる pixmap を指定するとよいでしょう。

デフォルトでは、このプロパティは未定義です。

アクセス関数:

QPixmap iconPixmap() const
void setIconPixmap(const QPixmap &pixmap)

iconも参照

informativeText : QString

このプロパティは、メッセージの詳細な説明を提供する情報テキストを保持します。

情報テキストは、text()を拡張して、より多くの情報をユーザに与えるために使用することができます。例えば、状況の結果を説明したり、代替の解決策を提案したりすることができます。

テキストは、テキスト・フォーマットの設定(QMessageBox::textFormat)によって、プレーン・テキストとしてもリッチ・テキストとしても解釈されます。Qt::AutoTextすなわち、メッセージ・ボックスはテキストの形式を自動検出しようとします。

デフ ォル ト では、 こ のプ ロ パテ ィ には空文字列が格納 さ れてい ます。

アクセス関数:

QString informativeText() const
void setInformativeText(const QString &text)

textFormatQMessageBox::textQMessageBox::detailedTextも参照してください

[since 6.6] options : Options

ダイアログのルック&フィールに影響するオプション。

デフォルトでは、これらのオプションは無効になっています。

オプションOption::DontUseNativeDialog は、ダイアログのプロパティを変更したり、ダイアログを表示したりする前に設定する必要があります。

ダイアログが表示されている間にオプションを設定しても、ダイアログに即座に影響を与えることは保証されていません。

他のプロパティを変更した後にオプションを設定すると、これらの値が効果を持たない可能性があります。

このプロパティは Qt 6.6 で導入されました。

アクセス関数:

QMessageBox::Options options() const
void setOptions(QMessageBox::Options options)

setOption() およびtestOption()も参照してください

standardButtons : StandardButtons

メッセージボックスの標準ボタンのコレクション

このプロパティは、メッセージ・ボックスで使用される標準ボタンを制御します。

デフォルトでは、このプロパティには標準ボタンは含まれていません。

アクセス関数:

QMessageBox::StandardButtons standardButtons() const
void setStandardButtons(QMessageBox::StandardButtons buttons)

addButton()も参照してください

text : QString

このプロパティは、表示するメッセージ・ボックス・テキストを保持します。

テキストは、状況を説明する簡潔な文章またはフレーズである必要があり、中立的な文、または行動喚起の質問として定式化されるのが理想的です。

テキストは、テキスト・フォーマット設定(QMessageBox::textFormat)に応じて、プレーン・テキストまたはリッチ・テキストとして解釈されます。Qt::AutoTextすなわち、 メ ッ セージ ・ ボ ッ ク ス はテ キ ス ト の形式を自動検出 し よ う と し ます。

こ のプ ロパテ ィ のデフ ォ ル ト 値は空文字列です。

アクセス関数:

QString text() const
void setText(const QString &text)

textFormatQMessageBox::informativeText 、およびQMessageBox::detailedTextも参照

textFormat : Qt::TextFormat

このプロパティは、メッセージ・ボックスが表示するテキストの書式を保持します。

メッセージ・ボックスが現在使用しているテキスト形式。指定可能なオプションについては、Qt::TextFormat enum を参照してください。

デフォルトの形式はQt::AutoText です。

アクセス関数:

Qt::TextFormat textFormat() const
void setTextFormat(Qt::TextFormat format)

setText()も参照してください

textInteractionFlags : Qt::TextInteractionFlags

メッセージ・ボックスのラベルがユーザ入力とどのように相互作用するかを指定します。

デフォルト値はスタイルによって異なります。

アクセス関数:

Qt::TextInteractionFlags textInteractionFlags() const
void setTextInteractionFlags(Qt::TextInteractionFlags flags)

QStyle::SH_MessageBox_TextInteractionFlags参照して ください。

メンバ関数 ドキュメント

[explicit] QMessageBox::QMessageBox(QWidget *parent = nullptr)

テキストもボタンもないapplication modal メッセージボックスを構築します。parentQDialog コンストラクタに渡されます。

ウィンドウのモダリティは、show() を呼び出す前にsetWindowModality() でオーバーライドできます。

注意: open() またはexec() を使用してメッセージ・ボックスを表示すると、ウィンドウのモダリティに影響します。詳細については、各関数の詳細なドキュメントを参照してください。

macOS では、メッセージ・ボックスをparentQt::Sheet として表示したい場合は、メッセージ・ボックスのwindow modalityQt::WindowModal に設定するか、open() を使用します。そうしないと、メッセージ・ボックスは標準のダイアログになります。

setWindowTitle()、setText()、setIcon()、setStandardButtons()、setWindowModality()も参照のこと

QMessageBox::QMessageBox(QMessageBox::Icon icon, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = NoButton, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint)

指定されたicontitletext 、および標準のbuttons を使用してapplication modal メッセージ・ボックスを構築します。標準ボタンやカスタム・ボタンは、addButton() を使用していつでも追加できます。parentf の引数はQDialog コンストラクタに渡されます。

ウィンドウのモダリティは、show() を呼び出す前にsetWindowModality() でオーバーライドできます。

注意: open() またはexec() を使用してメッセージ・ボックスを表示すると、ウィンドウのモダリティに影響します。詳細については、各関数の詳細なドキュメントを参照してください。

macOSでは、parentnullptr でなく、メッセージ・ボックスをその親のQt::Sheet として表示したい場合は、メッセージ・ボックスのwindow modalityQt::WindowModal に設定します(デフォルト)。そうしないと、メッセージ・ボックスは標準のダイアログになります。

setWindowTitle()、setText()、setIcon()、setStandardButtons()、setWindowModality()も参照して ください。

[virtual noexcept] QMessageBox::~QMessageBox()

メッセージ・ボックスを破棄します。

[static] void QMessageBox::about(QWidget *parent, const QString &title, const QString &text)

タイトルtitle とテキストtext を持つ単純な about ボックスを表示します。about ボックスの親はparent です。

about()は、4つの場所で適切なアイコンを探す:

  1. 存在する場合はparent->icon() を優先する。
  2. 存在しない場合、parent を含むトップ・レベル・ウィジェットを試す。
  3. それがなければ、 を含むトップ・レベル・ウィジェットを試す。active window.
  4. 最後の手段として、情報アイコンを使う。

aboutボックスには "OK "ボタンが1つあります。

macOSでは、aboutボックスはモードレスウィンドウとしてポップアップされます。

QWidget::windowIcon() およびQApplication::activeWindow()も参照して ください。

[static] void QMessageBox::aboutQt(QWidget *parent, const QString &title = QString())

Qt に関するシンプルなメッセージボックスを、指定されたtitle で、parent の中央に表示します(parentnullptr でない場合)。メッセージには、アプリケーションで使用されている Qt のバージョン番号が含まれます。

これは、Menus の例で示したように、アプリケーションのHelp メニューに含めるのに便利です。

QApplication は、この機能をスロットとして提供します。

macOSでは、aboutQtボックスはモードレスウィンドウとしてポップアップします。

QApplication::aboutQt()も参照してください

void QMessageBox::addButton(QAbstractButton *button, QMessageBox::ButtonRole role)

指定されたbutton を、指定されたrole とともにメッセージボックスに追加します。

removeButton()、button()、setStandardButtons()も参照

QPushButton *QMessageBox::addButton(QMessageBox::StandardButton button)

これはオーバーロードされた関数です。

メッセージ・ボックスに標準のbutton を追加し、それが有効な場合はプッシュ・ボタンを返します。

setStandardButtons()も参照

QPushButton *QMessageBox::addButton(const QString &text, QMessageBox::ButtonRole role)

これはオーバーロードされた関数です。

指定されたtext のボタンを作成し、指定されたrole のメッセージ・ボックスに追加して返します。

QAbstractButton *QMessageBox::button(QMessageBox::StandardButton which) const

標準ボタンwhich に対応するポインタを返し、標準ボタンがこのメッセージ・ボックスに存在しない場合はnullptr を返します。

注: 返されたボタンのプロパティを変更しても、メッセージ・ダイアログのネイティブ実装には反映されない場合があります。ダイアログボタンをカスタマイズするには、代わりにcustom button またはbutton title を追加するか、Option::DontUseNativeDialog オプションを設定してください。

standardButtons およびstandardButton()も参照してください

[signal] void QMessageBox::buttonClicked(QAbstractButton *button)

このシグナルは、QMessageBox 内でボタンがクリックされるたびに発せられます。 クリックされたボタンはbutton で返されます。

QMessageBox::ButtonRole QMessageBox::buttonRole(QAbstractButton *button) const

指定されたbutton のボタンの役割を返します。buttonnullptr の場合、またはメッセージ・ボックスに追加されていない場合、この関数はInvalidRole を返します。

buttons() およびaddButton()も参照して ください。

QList<QAbstractButton *> QMessageBox::buttons() const

メッセージ・ボックスに追加されているすべてのボタンのリストを返します。

buttonRole()、addButton() およびremoveButton() も参照して ください。

[override virtual protected] void QMessageBox::changeEvent(QEvent *ev)

再実装:QWidget::changeEvent(QEvent *event)。

QCheckBox *QMessageBox::checkBox() const

ダイアログに表示されているチェックボックスを返します。チェックボックスが設定されていない場合は、nullptr

setCheckBox()も参照してください

QAbstractButton *QMessageBox::clickedButton() const

ユーザーがクリックしたボタンを返します。ユーザーがEsc キーを押し、escape button が設定されていない場合はnullptr を返します。

exec() がまだ呼び出されていない場合は、nullptr を返す。

QMessageBox messageBox(this);
QAbstractButton *disconnectButton =
      messageBox.addButton(tr("Disconnect"), QMessageBox::ActionRole);
...
messageBox.exec();
if (messageBox.clickedButton() == disconnectButton) {
    ...
}

standardButton() およびbutton()も参照の こと。

[override virtual protected] void QMessageBox::closeEvent(QCloseEvent *e)

再実装:QDialog::closeEvent(QCloseEvent *e)。

[static] QMessageBox::StandardButton QMessageBox::critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)

指定されたparent ウィジェットの前に、指定されたtitletext でクリティカルメッセージボックスを開きます。

標準のbuttons がメッセージボックスに追加されます。defaultButton は、Enter が押されたときに使用されるボタンを指定します。defaultButton は、buttons で指定されたボタンを参照する必要があります。defaultButtonQMessageBox::NoButton の場合、QMessageBox は自動的に適切なデフォルトを選択します。

クリックされた標準ボタンの ID を返します。代わりにEsc が押された場合は、escape button が返されます。

メッセージボックスはapplication modal ダイアログボックスである。

警告: ダイアログの実行中にparent を削除しないでください。これを行いたい場合は、QMessageBox コンストラクタのいずれかを使用してダイアログを自分で作成する必要があります。

question()、warning()、information()も参照してください

QPushButton *QMessageBox::defaultButton() const

メッセージボックスのボタンdefault button を返します。デフォルト・ボタンが設定されていない場合は nullptr を返します。

setDefaultButton()、addButton()、およびQPushButton::setDefault()も参照して ください。

QAbstractButton *QMessageBox::escapeButton() const

escape が押されたときにアクティブになるボタンを返します。

デフォルトでは、QMessageBox は以下のようにエスケープ・ボタンを自動的に検出しようとする:

  1. ボタンがひとつしかない場合、それをエスケープ・ボタンとする。
  2. ボタンが1つしかない場合、それをエスケープ・ボタンとします。Cancel ボタンがある場合、それをエスケープ・ボタンとします。
  3. macOSのみ、QMessageBox::RejectRole の役割を持つボタンが1つだけあれば、それをエスケープ・ボタンとします。

エスケープボタンが自動的に検出されなかった場合、Esc を押しても効果はありません。

setEscapeButton() およびaddButton()も参照

[override virtual protected] bool QMessageBox::event(QEvent *e)

再実装:QWidget::event(QEvent *event)。

[override virtual slot] int QMessageBox::exec()

再実装:(QEvent *event):QDialog::exec().

メッセージ・ボックスをmodal dialog として表示し、ユーザが閉じるまでブロックします。

標準ボタンでQMessageBox を使用する場合、この関数は、クリックされた標準ボタンを示すStandardButton 値を返します。カスタム・ボタンでQMessageBox を使用する場合、この関数は不透明な値を返します。どのボタンがクリックされたかを判別するには、clickedButton() を使用します。

注: result() 関数は、QDialog::DialogCode の代わりにStandardButton の値も返します。

ユーザは、ボタンをクリックするか、ウィンドウ・システムが提供するメカニズムを使用して、ダイアログを閉じるまで、同じアプリケーション内の他のウィンドウと対話することはできません。

show() およびresult()も参照の こと。

[static] QMessageBox::StandardButton QMessageBox::information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)

指定されたparent ウィジェットの前に、指定されたtitletext を持つ情報メッセージボックスを開きます。

標準のbuttons がメッセージボックスに追加されます。defaultButtonEnter が押されたときに使われるボタンを指定します。defaultButtonbuttons で与えられたボタンを参照しなければなりません。defaultButtonQMessageBox::NoButton の場合、QMessageBox は自動的に適切なデフォルトを選びます。

クリックされた標準ボタンの ID を返します。代わりにEsc が押された場合は、escape button が返されます。

メッセージボックスはapplication modal ダイアログボックスである。

警告: ダイアログの実行中にparent を削除しないでください。これを行いたい場合は、QMessageBox コンストラクタのいずれかを使用してダイアログを自分で作成する必要があります。

question()、warning()、critical()も参照してください

[override virtual protected] void QMessageBox::keyPressEvent(QKeyEvent *e)

再実装:QDialog::keyPressEvent(QKeyEvent *e)。

void QMessageBox::open(QObject *receiver, const char *member)

ダイアログを開き、そのfinished() またはbuttonClicked() シグナルを、receiver およびmember で指定されたスロットに接続します。member のスロットの最初のパラメータにポインタがある場合、接続先はbuttonClicked() となり、そうでない場合はfinished() となります。

ダイアログが閉じられると、シグナルはスロットから切断されます。

[static] QMessageBox::StandardButton QMessageBox::question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = StandardButtons(Yes | No), QMessageBox::StandardButton defaultButton = NoButton)

指定されたparent ウィジェットの前に、指定されたtitletext を持つ質問メッセージボックスを開きます。

標準のbuttons がメッセージボックスに追加されます。defaultButtonEnter が押されたときに使われるボタンを指定します。defaultButtonbuttons で指定されたボタンを参照しなければなりません。defaultButtonQMessageBox::NoButton の場合、QMessageBox は自動的に適切なデフォルトを選択します。

クリックされた標準ボタンの ID を返します。代わりにEsc が押された場合は、escape button が返されます。

メッセージボックスはapplication modal ダイアログボックスである。

警告: ダイアログの実行中にparent を削除しないでください。これを行いたい場合は、QMessageBox コンストラクタのいずれかを使用してダイアログを自分で作成する必要があります。

information()、warning()、critical()も参照してください

void QMessageBox::removeButton(QAbstractButton *button)

button を削除せずに、ボタン・ボックスから削除します。

addButton() およびsetStandardButtons() も参照して ください。

[override virtual protected] void QMessageBox::resizeEvent(QResizeEvent *event)

再実装:QDialog::resizeEvent(QResizeEvent *)。

void QMessageBox::setCheckBox(QCheckBox *cb)

メッセージ・ダイアログのチェックボックスcb を設定します。メッセージボックスがチェックボックスの所有権を持ちます。引数cb には、メッセージ・ボックスから既存のチェックボックスを削除するnullptr を指定できます。

checkBox()も参照してください

void QMessageBox::setDefaultButton(QMessageBox::StandardButton button)

メッセージ・ボックスのdefault buttonbutton に設定します。

defaultButton()、addButton()、QPushButton::setDefault()も参照のこと

void QMessageBox::setDefaultButton(QPushButton *button)

メッセージ・ボックスのdefault buttonbutton に設定します。

addButton() およびQPushButton::setDefault() も参照

void QMessageBox::setEscapeButton(QAbstractButton *button)

Escape キーが押されたときにアクティブになるボタンをbutton に設定します。

escapeButton()、addButton()、clickedButton() も参照して ください。

void QMessageBox::setEscapeButton(QMessageBox::StandardButton button)

Escape キーが押されたときにアクティブになるボタンをbutton に設定する。

addButton() およびclickedButton() も参照

[since 6.6] void QMessageBox::setOption(QMessageBox::Option option, bool on = true)

on が true の場合、指定されたoption を有効にする。そうでない場合、指定されたoption をクリアする。

オプション(特にOption::DontUseNativeDialog オプション)は、ダイアログを表示する前に設定する必要があります。

ダイアログが表示されている間にオプションを設定しても、ダイアログに即座に影響を与えることは保証されません。

他のプロパティを変更した後にオプションを設定すると、これらの値が効果を持たない可能性があります。

この関数は Qt 6.6 で導入されました。

options およびtestOption()も参照してください

void QMessageBox::setWindowModality(Qt::WindowModality windowModality)

この関数はQWidget::setWindowModality() をシャドウします。

メッセージボックスのモダリティをwindowModality に設定します。

macOS では、モダリティがQt::WindowModal に設定され、メッセージボックスが親を持つ場合、メッセージボックスはQt::Sheet になり、そうでない場合、メッセージボックスは標準ダイアログになります。

void QMessageBox::setWindowTitle(const QString &title)

この関数はQWidget::setWindowTitle() をシャドウします。

メッセージ・ボックスのタイトルをtitle に設定します。macOS では、ウィンドウ・タイトルは無視されます(macOS ガイドラインで要求されています)。

[override virtual protected] void QMessageBox::showEvent(QShowEvent *e)

再実装:QDialog::showEvent(QShowEvent *event)。

QMessageBox::StandardButton QMessageBox::standardButton(QAbstractButton *button) const

与えられたbutton に対応する標準ボタンの enum 値、または与えられたbutton が標準ボタンでない場合はNoButton を返します。

button() およびstandardButtons()も参照してください

[since 6.6] bool QMessageBox::testOption(QMessageBox::Option option) const

与えられたoption が有効な場合はtrue を返し、そうでない場合は false を返します。

この関数は Qt 6.6 で導入されました。

options およびsetOption()も参照して ください。

[static] QMessageBox::StandardButton QMessageBox::warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)

指定されたparent ウィジェットの前に、指定されたtitletext を持つ警告メッセージボックスを開きます。

標準のbuttons がメッセージボックスに追加されます。defaultButtonEnter が押されたときに使われるボタンを指定します。defaultButtonbuttons で指定されたボタンを参照しなければなりません。defaultButtonQMessageBox::NoButton の場合、QMessageBox は自動的に適切なデフォルトを選択します。

クリックされた標準ボタンの ID を返します。代わりにEsc が押された場合は、escape button が返されます。

メッセージボックスはapplication modal ダイアログボックスである。

警告: ダイアログの実行中にparent を削除しないでください。これを行いたい場合は、QMessageBox コンストラクタのいずれかを使用して、ダイアログを自分で作成する必要があります。

question()、information()、critical()も参照してください

マクロ・ドキュメント

QT_REQUIRE_VERSION(int argc, char **argv, const char *version)

このマクロは、アプリケーションが十分新しいバージョンの Qt で実行されていることを確認するために使用できます。これは、アプリケーションがバグフィックスリリース(例えば、6.1.2)で導入された特定のバグフィックスに依存している場合に特に便利です。

argcargv パラメータは、main() 関数のargcargv パラメータです。version パラメータは、アプリケーションが必要とする Qt のバージョンを指定する文字列リテラルです(例えば、"6.1.2")。

#include <QApplication>
#include <QMessageBox>

int main(int argc, char *argv[])
{
    QT_REQUIRE_VERSION(argc, argv, "4.0.2")

    QApplication app(argc, argv);
    ...
    return app.exec();
}

: ©2024 The Qt Company Ltd. ここに含まれる文書の著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。