QDialogButtonBox简介和使用心得

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


猜你喜欢

转载自blog.csdn.net/stevenkoh/article/details/80262145