这个控件按我个人理解有点像单独2按钮自定义的一个组件.
然后同样有两个点击信号分别对应其2个按钮;
分别为accepted以及rejected;
使用如下:
connect(buttonBox, &QDialogButtonBox::accepted, this, [](){});
connect(buttonBox, &QDialogButtonBox::rejected, this, [](){});
helpRequested信号: 该信号直接连接并不会触发.需要自定义按钮角色为HelpRole才可触发 clicked(QAbstractButton*)信号: 该信号参数是按钮框里面定义的按钮被点击后触发. 当我们自定义该按钮框时,可以接收该信号并区分信号来自哪个按钮 其他的一些用法: 1.比如需要禁用其中某个按钮
//取出按钮框里面的某个按钮
QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok);
okButton->setEnabled(false);
2.比如有一个文本输入框,只有再其存在内容时才显示:
connect(ui->lineEdit, &QLineEdit::textChanged, [okButton](const QString &text) {
okButton->setEnabled(!text.isEmpty());
});
3.定制对话框以及按钮行为
class CustomDialog : public QDialog {
Q_OBJECT
public:
CustomDialog(QWidget *parent = nullptr) : QDialog(parent) {
QDialogButtonBox *buttonBox = new QDialogButtonBox(this);
QPushButton *customButton = new QPushButton("Custom Action", this);
buttonBox->addButton(customButton, QDialogButtonBox::ActionRole);
connect(customButton, &QPushButton::clicked, this, &CustomDialog::handleCustomButtonClick);
}
private slots:
void handleCustomButtonClick() {
//实现自定义按钮被点击后需要做的事情
}
};