QDialogButtonBox简介和使用心得

13 篇文章 2 订阅

QT里面提供了QDialogButtonBox,每一个建立的Dialog对话框都会提供这个东东。具体查资料吧,这里说说使用感悟。


1.系统提供的role消息/槽就三种, Accept、reject、help,诸如save,saveall,ignore,apply,reset等常用的,如何和OK搭配,有些时候需要链接clicked槽使用。

2.如果调用standardButton(QAbstractButton *button) const 、StandardButtons standardButtons() const 两个函数,编译器会报错,应为这两个函数名和枚举类同名,编译总报错。

3.clicked槽,QTCreator Designer模式下,无法图形连接,只能硬写入对话框构造函数里。我推荐qt5的写法,不用SIGNAL/SLOT这类QT4关键字。其实在qt4/qt5官方不同版本下的手册里已经有不同。比如我的

{
    ui->setupUi(this);
    connect(ui->buttonBox,&QDialogButtonBox::clicked,this,&Dialog3::clicked);
}

4.比如save/saveall之类,在处理clicked信号以后,还会触发accept操作。自己挂接的时候要注意判断。建议每次在clicked内设设置判断,然后统一在accept里处理,如果需要关闭,在调用QDialog::accept处理。

5.通过button(QDialogButtonBox::Reset)来获取QPushButton * ,继而进行屏蔽/disable等按钮操作。

6.几个重要的参考资料:

clicked使用方法:http://www.qtcentre.org/threads/56986-intercepting-button-clicks-in-QDialogButtonBox

中文汉化(真经验):https://blog.csdn.net/qiuchengw/article/details/38821215

大神豆子文章,平台Native问题:http://blog.51cto.com/devbean/491509


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QDialogButtonBox是Qt中的一个小部件,用于显示对话框中的标准按钮。它提供了一种简单的方式来添加和管理这些按钮。下面是一个QDialogButtonBox使用示例: ```cpp #include <QApplication> #include <QDialog> #include <QDialogButtonBox> #include <QVBoxLayout> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建一个对话框 QDialog dialog; dialog.setWindowTitle("QDialogButtonBox Example"); // 创建一个垂直布局 QVBoxLayout layout(&dialog); // 创建一个QDialogButtonBox QDialogButtonBox buttonBox(Qt::Horizontal); // 添加标准按钮到QDialogButtonBox buttonBox.addButton("OK", QDialogButtonBox::AcceptRole); buttonBox.addButton("Cancel", QDialogButtonBox::RejectRole); buttonBox.addButton("Apply", QDialogButtonBox::ApplyRole); buttonBox.addButton("Reset", QDialogButtonBox::ResetRole); // 将QDialogButtonBox添加到布局中 layout.addWidget(&buttonBox); // 连接按钮的信号和槽函数 QObject::connect(&buttonBox, &QDialogButtonBox::accepted, &dialog, &QDialog::accept); QObject::connect(&buttonBox, &QDialogButtonBox::rejected, &dialog, &QDialog::reject); // 显示对话框 dialog.show(); return app.exec(); } ``` 在这个示例中,我们创建了一个对话框,并在对话框中添加了一个QDialogButtonBox。然后,我们使用addButton()函数向QDialogButtonBox添加了几个标准按钮,分别是"OK"、"Cancel"、"Apply"和"Reset"。我们还使用了信号和槽机制,将按钮的accepted和rejected信号连接到对话框的accept()和reject()槽函数上。 这样,当用户点击对应的按钮时,对话框会根据按钮的角色执行相应的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值