DialogButtonBox 使用

这个控件按我个人理解有点像单独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() {
        //实现自定义按钮被点击后需要做的事情
    }
};

                
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值