在Qt中,QDialogButtonBox是一个用于管理对话框按钮的小部件。默认情况下,当用户点击QDialogButtonBox中的按钮时,它会自动关闭其父级QDialog。
如果你想要QDialogButtonBox不关闭其父QDialog,你可以通过以下两种方法来实现:
void MyDialog::closeEvent(QCloseEvent *event)
{
if (event->spontaneous() && sender() == buttonBox) {
event->ignore();
} else {
QDialog::closeEvent(event);
}
}
connect(buttonBox, &QDialogButtonBox::accepted, this, &MyDialog::onAccepted);
connect(buttonBox, &QDialogButtonBox::rejected, this, &MyDialog::onRejected);
void MyDialog::onAccepted()
{
// 执行接受按钮的操作
}
void MyDialog::onRejected()
{
// 执行拒绝按钮的操作
}
通过以上两种方法,你可以控制QDialogButtonBox的按钮行为,使其不关闭其父QDialog。请注意,以上示例中的MyDialog是QDialog的子类,你需要根据自己的实际情况进行调整。
关于QDialogButtonBox的更多信息和使用方法,你可以参考腾讯云的官方文档:QDialogButtonBox类参考。
领取专属 10元无门槛券
手把手带您无忧上云