このページでは

DialogButtonBox QML Type

ダイアログで使用されるボタンボックス。詳細...

Import Statement: import QtQuick.Controls
Inherits:

Container

プロパティ

関連するプロパティ

信号

方法

詳細説明

ダイアログやメッセージボックスでは、通常、そのプラットフォームのインターフェースガイドラインに準拠した順序でボタンが表示されます。当然ながら、プラットフォームによってダイアログボタンの順序は異なります。DialogButtonBox を使用すると、開発者はボタンを追加するだけで、ユーザーのプラットフォームに適した順序が自動的に適用されます。

ダイアログのボタンのほとんどは、特定の役割を担っています。そのような役割には、次のようなものがあります。

  • ダイアログの承認または拒否。
  • ヘルプを要求する。
  • ダイアログ自体に対する操作の実行(フィールドのリセットや変更の適用など)。

また、ダイアログを閉じる別の方法が存在する場合もあり、それによって破壊的な結果を引き起こす可能性があります。

ほとんどのダイアログには、ほぼ標準と見なせるボタン(例:OK やCancel ボタン)があります。これらのボタンを標準的な方法で作成すると便利な場合があります。

DialogButtonBox を使用するにはいくつかの方法があります。1 つの方法は、標準的なボタン(例:OK 、Cancel 、Save )を指定し、ボタンボックスにボタンの設定を行わせることです。

「OK」ボタンと「キャンセル」ボタンが付いたダイアログボックス

DialogButtonBox {
    standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel

    onAccepted: console.log("Ok clicked")
    onRejected: console.log("Cancel clicked")
}

あるいは、ボタンとその役割を手動で指定することもできます:

DialogButtonBox {
    Button {
        text: qsTr("Save")
        DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole
    }
    Button {
        text: qsTr("Close")
        DialogButtonBox.buttonRole: DialogButtonBox.DestructiveRole
    }
}

通常のボタンと標準ボタンを組み合わせて使用することも可能です。

ボタンボックス内のボタンがクリックされると、実際に押されたボタンに対して `clicked()` シグナルが発信されます。さらに、それぞれの役割を持つボタンが押されると、以下のシグナルが自動的に発信されます:

役割シグナル
AcceptRole,YesRoleaccepted()
ApplyRoleapplied()
DiscardRolediscarded()
HelpRolehelpRequested()
RejectRole,NoRolerejected()
ResetRolereset()

Dialogも参照してください 。

プロパティのドキュメント

alignment : flags

このプロパティは、ボタンの配置を指定します。

指定可能な値:

定数説明
Qt.AlignLeftボタンは左揃えになります。
Qt.AlignHCenterボタンが水平方向に中央揃えになります。
Qt.AlignRightボタンは右揃えになります。
Qt.AlignTopボタンは上端に揃えられます。
Qt.AlignVCenterボタンは縦方向に中央揃えです。
Qt.AlignBottomボタンは下部に配置されます。

デフォルトでは、特定の配置は設定されていません。alignment プロパティを読み取ると、0 と同等となるデフォルトのフラグ値が返されます。このプロパティに `undefined ` を代入することで、この値にリセットできます。この場合、ボタンは利用可能なスペースを埋めるようにサイズが調整されます。

注:この プロパティは 、ボタンが水平に配置されることを前提としています。iOS スタイルを実行する場合、このプロパティが `undefined ` 以外に設定されており、かつボタンが 3 つ以上ある場合、DialogButtonBox は垂直配置を使用することに注意してください。それ以外の場合は、ボタンは水平に配置されます。

buttonLayout : enumeration [since QtQuick.Controls 2.5 (Qt 5.12)]

このプロパティは、ボタンボックスに含まれるボタンを配置する際に使用するボタンのレイアウトポリシーを指定します。デフォルト値はプラットフォームによって異なります。

使用可能な値:

定数説明
DialogButtonBox.WinLayoutWindows上のアプリケーションに適したポリシーを使用します。
DialogButtonBox.MacLayoutmacOS上のアプリケーションに適したポリシーを使用します。
DialogButtonBox.KdeLayoutKDE上のアプリケーションに適したポリシーを使用します。
DialogButtonBox.GnomeLayoutGNOME 上のアプリケーションに適したポリシーを使用します。
DialogButtonBox.AndroidLayoutAndroid 上のアプリケーションに適したポリシーを使用します。

このプロパティは、QtQuick.Controls 2.5 (Qt 5.12) で導入されました。

defaultButton : AbstractButton [since 6.11]

このプロパティは、デフォルトのボタンを指定します。

デフォルトのボタンは「highlighted 」となり、フォーカスがそのボタンに割り当てられます。

ボタンボックス内のボタンは、1つだけデフォルトに設定できます。このプロパティは、defaultStandardButton プロパティと併用することはできません。

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

「 standardButtons 」および「defaultStandardButton 」も参照してください 。

defaultStandardButton : enumeration [since 6.11]

このプロパティには、デフォルトの標準ボタンが格納されます。

デフォルトの標準ボタンは「highlighted 」となり、フォーカスが当たります。

ボタンボックス内のボタンは、1つだけデフォルトに設定できます。このプロパティは、defaultButton プロパティと併用することはできません。

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

「 standardButtons 」および「defaultButton 」も参照してください 。

delegate : Component

このプロパティは、標準のボタンを作成するためのデリゲートを保持します。

DialogButtonBox このプロパティは、デリゲートの所有権を取得しません。

「standardButtons」も参照してください 。

position : enumeration

このプロパティは、ボタンボックスの位置を指定します。

注: ボタンボックスがApplicationWindow またはページのヘッダーまたはフッターとして割り当てられている場合 、適切な位置は自動的に設定されます。

指定可能な値:

定数説明
DialogButtonBox.Headerボタンボックスは、ウィンドウまたはページのヘッダーとして上部に配置されます。
DialogButtonBox.Footerボタンボックスは、ウィンドウまたはページのフッターとして下部に配置されます。

デフォルト値は `Footer` です。

「 Dialog::header 」および「Dialog::footer 」も参照してください 。

standardButtons : enumeration

このプロパティには、ボタンボックスで使用される標準ボタンの組み合わせが格納されています。

DialogButtonBox {
    standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel

    onAccepted: console.log("Ok clicked")
    onRejected: console.log("Cancel clicked")
}

ボタンは、ユーザーのプラットフォームに応じて適切な順序で配置されます。

使用可能なフラグ:

定数説明
DialogButtonBox.OkAcceptRole で定義された「OK」ボタン。
DialogButtonBox.OpenAcceptRole で定義された「開く」ボタン。
DialogButtonBox.SaveAcceptRole で定義された「Save」ボタン。
DialogButtonBox.CancelRejectRole で定義された「Cancel」ボタン。
DialogButtonBox.CloseRejectRole で定義された「閉じる」ボタン。
DialogButtonBox.Discardプラットフォームに応じて、「破棄」または「保存しない」ボタン。DestructiveRole で定義されます。
DialogButtonBox.ApplyApplyRole で定義された「適用」ボタン。
DialogButtonBox.ResetResetRole で定義された「リセット」ボタン。
DialogButtonBox.RestoreDefaultsResetRole で定義された「Restore Defaults」ボタン。
DialogButtonBox.HelpHelpRole で定義された「ヘルプ」ボタン。
DialogButtonBox.SaveAllAcceptRole で定義された「すべて保存」ボタン。
DialogButtonBox.YesYesRole で定義された「はい」ボタン。
DialogButtonBox.YesToAllYesRole で定義された「すべてに『はい』」ボタン。
DialogButtonBox.NoNoRole で定義された「No」ボタン。
DialogButtonBox.NoToAllNoRole で定義された「すべてに『いいえ』」ボタン。
DialogButtonBox.AbortRejectRole で定義された「中止」ボタン。
DialogButtonBox.RetryAcceptRole で定義された「再試行」ボタン。
DialogButtonBox.IgnoreAcceptRole で定義された「無視」ボタン。
DialogButtonBox.NoButton無効なボタン。

standardButton()も参照してください 。

添付プロパティのドキュメント

DialogButtonBox.buttonBox : DialogButtonBox [read-only attached]

この添付プロパティには、このボタンを管理するボタンボックス、あるいはボタンがボタンボックスに含まれていない場合はnull が格納されます。

DialogButtonBox.buttonRole : enumeration [attached]

この関連プロパティは、ボタンボックス内の各ボタンの役割を保持します。

DialogButtonBox {
    Button {
        text: qsTr("Save")
        DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole
    }
    Button {
        text: qsTr("Close")
        DialogButtonBox.buttonRole: DialogButtonBox.DestructiveRole
    }
}

利用可能な値:

定数説明
DialogButtonBox.InvalidRoleボタンは無効です。
DialogButtonBox.AcceptRoleボタンをクリックすると、ダイアログが承認されます(例:OK )。
DialogButtonBox.RejectRoleボタンをクリックすると、ダイアログが却下されます(例:Cancel )。
DialogButtonBox.DestructiveRoleこのボタンをクリックすると、破壊的な変更(変更の破棄など)が行われ、ダイアログが閉じられます。
DialogButtonBox.ActionRoleこのボタンをクリックすると、ダイアログ内の要素に変更が反映されます。
DialogButtonBox.HelpRoleこのボタンをクリックすると、ヘルプを表示できます。
DialogButtonBox.YesRoleこのボタンは「はい」のようなボタンです。
DialogButtonBox.NoRoleこのボタンは「いいえ」のようなボタンです。
DialogButtonBox.ResetRoleこのボタンをクリックすると、ダイアログのフィールドがデフォルト値にリセットされます。
DialogButtonBox.ApplyRoleこのボタンをクリックすると、現在の変更が反映されます。

シグナルのドキュメント

accepted()

このシグナルは、AcceptRole またはYesRole で定義されたボタンがクリックされたときに発火します。

注: 対応するハンドラは onAccepted です。

関連項目: rejected()、clicked()、およびhelpRequested()。

[since QtQuick.Controls 2.3 (Qt 5.10)] applied()

このシグナルは、ApplyRole で定義されたボタンがクリックされたときに発生します。

注: 対応するハンドラは `onApplied` です。

このシグナルは、QtQuick.Controls 2.3 (Qt 5.10) で導入されました。

discarded() およびreset()も参照してください 。

clicked(AbstractButton button)

このシグナルは、ボタンボックス内のbutton がクリックされたときに発生します。

注: 対応するハンドラは `onClicked` です。

関連項目: accepted()、rejected()、およびhelpRequested()。

[since QtQuick.Controls 2.3 (Qt 5.10)] discarded()

このシグナルは、DiscardRole で定義されたボタンがクリックされたときに発生します。

注: 対応するハンドラは onDiscarded です。

このシグナルは、QtQuick.Controls 2.3 (Qt 5.10) で導入されました。

reset() およびapplied()も参照してください 。

helpRequested()

このシグナルは、HelpRole で定義されたボタンがクリックされたときに発生します。

注: 対応するハンドラは `onHelpRequested` です。

関連項目: accepted()、rejected()、clicked()も参照してください 。

rejected()

このシグナルは、RejectRole またはNoRole で定義されたボタンがクリックされたときに発生します。

注: 対応するハンドラは onRejected です。

関連項目: accepted()、helpRequested()、およびclicked()も参照してください 。

[since QtQuick.Controls 2.3 (Qt 5.10)] reset()

このシグナルは、ResetRole で定義されたボタンがクリックされたときに発生します。

注: 対応するハンドラは `onReset` です。

このシグナルは、QtQuick.Controls 2.3 (Qt 5.10) で導入されました。

discarded() およびapplied()も参照してください 。

メソッドのドキュメント

AbstractButton standardButton(StandardButton button)

指定された標準button を返します。存在しない場合はnull を返します。

「standardButtons」も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.