QT-UI
+ -

QDialogButtonBox

2025-01-07 1 0

QDialogButtongBox是一个包含很多按钮的控件,对话框中有多个需要分组排列的按钮时,可以使用QDialogButtongBox类。
开发人员可以向QDialogButtonBox添加按钮,QDialogButtonBox会根据平台自动使用合适的布局。

使用QDialogButtonBox可以通过setStandardButtons函数实现组合创建以下类型的按钮:

Constant Value Description
QDialogButtonBox::Ok 0x00000400 AcceptRole角色下定义的Ok按钮
QDialogButtonBox::Open 0x00002000 AcceptRole角色下定义的Open按钮
QDialogButtonBox::Save 0x00000800 AcceptRole角色下定义的Save按钮
QDialogButtonBox::Cancel 0x00400000 RejectRole角色下定义的Cancel按钮
QDialogButtonBox::Close 0x00200000 RejectRole角色下定义的Close按钮
QDialogButtonBox::Discard 0x00800000 DestructiveRole角色下定义的Discard或Don’t Save按钮,具体取决于使用的平台
QDialogButtonBox::Apply 0x02000000 ApplyRole角色下定义的Apply按钮
QDialogButtonBox::Reset 0x04000000 ResetRole角色下定义的Reset按钮
QDialogButtonBox::RestoreDefaults 0x08000000 ResetRole角色下定义的RestoreDefaults按钮
QDialogButtonBox::Help 0x01000000 HelpRole角色下定义的Help按钮
QDialogButtonBox::SaveAll 0x00001000 AcceptRole角色下定义的Save All按钮
QDialogButtonBox::Yes 0x00004000 YesRole角色下定义的Yes按钮
QDialogButtonBox::YesToAll 0x00008000 YesRole角色下定义的Yes to All按钮
QDialogButtonBox::No 0x00010000 NoRole角色下定义的No按钮
QDialogButtonBox::NoToAll 0x00020000 NoRole角色下定义的No to All按钮
QDialogButtonBox::Abort 0x00040000 RejectRole角色下定义的Abort按钮
QDialogButtonBox::Retry 0x00080000 AcceptRole角色下定义的Retry按钮
QDialogButtonBox::Ignore 0x00100000 AcceptRole角色下定义的Ignore按钮
QDialogButtonBox::NoButton 0x00000000 无效按钮

示例代码如下:

#include <QApplication>
#include <QDialog>
#include <QDialogButtonBox>
#include <QLabel>
#include <QVBoxLayout>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QDialog dialog;
    dialog.setWindowTitle("QDialogButtonBox");
    QVBoxLayout *layout = new QVBoxLayout(&dialog);

    QLabel *label = new QLabel("Hello, QDialogButtonBox!");
    layout->addWidget(label);

    // 创建一个 QDialogButtonBox 并添加按钮
    QDialogButtonBox *buttonBox = new QDialogButtonBox(&dialog);
    buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
    layout->addWidget(buttonBox);

    QObject::connect(buttonBox, &QDialogButtonBox::accepted, [&]() {
        // 接受按钮被点击
        label->setText("Clicked OK");
    });

    QObject::connect(buttonBox, &QDialogButtonBox::rejected, [&]() {
        // 拒绝按钮被点击
        label->setText("Clicked Cancel");
    });

    dialog.setLayout(layout);
    dialog.show();

    return app.exec();
}

105337813203

https://blog.csdn.net/maizousidemao/article/details/127827096
https://blog.csdn.net/MrHHHHHH/article/details/133893844

0 篇笔记 写笔记

QDialogButtonBox
QDialogButtongBox是一个包含很多按钮的控件,对话框中有多个需要分组排列的按钮时,可以使用QDialogButtongBox类。开发人员可以向QDialogButtonBox添加按钮,QDialogButtonBox会根据平台自动使用合适的布局。使用QDialogButtonBox可......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!