QT中如何使QDialog dialog弹窗在点击OK按钮后不会消失退出
时间: 2024-04-13 20:28:58 浏览: 573
qt退出对话框
4星 · 用户满意度95%
您可以通过重写 QDialog 的 `accept()` 或 `reject()` 方法来实现点击 OK 按钮后不让 QDialog 消失退出。
首先,在您的 QDialog 子类中,重写 `accept()` 方法:
```cpp
class CustomDialog : public QDialog
{
Q_OBJECT
public:
explicit CustomDialog(QWidget *parent = nullptr);
protected:
void accept() override;
};
```
然后,在实现文件中重写 `accept()` 方法:
```cpp
void CustomDialog::accept()
{
// 执行您希望在点击 OK 按钮后执行的操作
// 不调用父类的 accept() 方法,使 QDialog 不会消失退出
}
```
这样,当您点击 OK 按钮时,不会触发 QDialog 的默认的 accept() 操作,从而不会让 QDialog 消失退出。您可以在 `accept()` 方法中执行您希望在点击 OK 按钮后执行的操作。
同样的方式,您也可以重写 `reject()` 方法来实现点击 Cancel 或其他按钮后的处理。
阅读全文