用按钮退出 QDialog
时间: 2023-05-21 15:03:25 浏览: 60
可以使用以下代码实现在 PyQt5 中使用按钮退出 QDialog:
```python
from PyQt5.QtWidgets import QDialog, QPushButton, QApplication
import sys
class MyDialog(QDialog):
def __init__(self):
super().__init__()
button = QPushButton('退出', self)
button.clicked.connect(self.close)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('退出对话框')
if __name__ == '__main__':
app = QApplication(sys.argv)
dialog = MyDialog()
dialog.show()
sys.exit(app.exec_())
```
这段代码创建了一个名为 MyDialog 的 QDialog 对象,并在其上添加了一个名为“退出”的按钮,当用户点击该按钮时,对话框将被关闭。
相关问题
QT c++用按钮退出 QDialog
可以使用以下代码实现:
在 QDialog 类的头文件中添加一个私有槽函数:
private slots:
void on_pushButton_clicked();
在 QDialog 类的源文件中实现该槽函数:
void QDialog::on_pushButton_clicked()
{
this->close();
}
在 QDialog 的 UI 界面中添加一个按钮,并将其与该槽函数连接即可。
注意:这里的代码是使用 QT c++ 编写的,如果您使用的是其他编程语言,可能需要使用不同的代码实现相同的功能。
我只想让某一个弹窗做此操作,你这种方法会让其他所有弹窗在点击 OK 按钮后 QDialog 都不会消失退出
如果您只想针对特定的某一个 QDialog 对象,在点击 OK 按钮后不让其消失退出,可以使用 `setResult()` 方法来设置 QDialog 的结果。
下面是一个示例代码:
```cpp
class CustomDialog : public QDialog
{
Q_OBJECT
public:
explicit CustomDialog(QWidget *parent = nullptr);
private slots:
void onOkButtonClicked();
};
CustomDialog::CustomDialog(QWidget *parent) : QDialog(parent)
{
// 创建对话框中的 OK 按钮
QPushButton *okButton = new QPushButton("OK", this);
// 将按钮的 clicked() 信号与自定义的槽函数 onOkButtonClicked() 关联
connect(okButton, &QPushButton::clicked, this, &CustomDialog::onOkButtonClicked);
}
void CustomDialog::onOkButtonClicked()
{
// 执行您希望在点击 OK 按钮后执行的操作
// 设置对话框的结果为 Accepted,不会让对话框消失退出
setResult(QDialog::Accepted);
}
```
在上述代码中,我们创建了一个名为 `CustomDialog` 的 QDialog 子类,并在构造函数中创建了一个名为 `okButton` 的 QPushButton 对象。然后,我们使用 `connect()` 函数将按钮的 `clicked()` 信号与自定义的槽函数 `onOkButtonClicked()` 关联。
在 `onOkButtonClicked()` 槽函数中,您可以执行您希望在点击 OK 按钮后执行的操作,并使用 `setResult()` 方法将对话框的结果设置为 `QDialog::Accepted`,从而不让对话框消失退出。
通过这种方式,您可以更简单地控制特定对话框在点击 OK 按钮后的行为,并且不让特定对话框自动关闭。其他 QDialog 对象不会受到影响。