What does QObject::connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); do in following code
-
QDialogButtonBox* buttonBox = new QDialogButtonBox();
buttonBox->setStandardButtons(QDialogButtonBox::Apply | QDialogButtonBox::Close);
QPushButton* applyButton = buttonBox->button(QDialogButtonBox::Apply);
QObject::connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); -
Hi, friend. Welcome.
The Qt manual said:[signal] void QDialogButtonBox::accepted()
This signal is emitted when a button inside the button box is clicked, as long as it was defined with theAcceptRole or YesRole.QDialogButtonBoxinclude more than one button. If there is aAcceptRole buttonclicked and the signal will be emitted. From the signal, we can knowAcceptRole buttonis clicked inQDialogButtonBox.eg:
#include "widget.h" #include "ui_widget.h" #include <QDialogButtonBox> #include <QDebug> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Save | QDialogButtonBox::Cancel, this); ///< Ok and Save is AcceptRole connect(buttonBox, &QDialogButtonBox::accepted, this, [=](){ qDebug("ok or save"); }); connect(buttonBox, &QDialogButtonBox::rejected, this, [=](){ qDebug("cancel"); }); } Widget::~Widget() { delete ui; }Add the button roles:
enum QDialogButtonBox::StandardButton
eg:QDialogButtonBox::Ok An "OK" button defined with the AcceptRole.
QDialogButtonBox::Open An "Open" button defined with the AcceptRole.
QDialogButtonBox::Save A "Save" button defined with the AcceptRole.
QDialogButtonBox::Cancel A "Cancel" button defined with the RejectRole.
QDialogButtonBox::Close A "Close" button defined with the RejectRole.