Qt中程序只有一个dialog,关闭对话框后程序不自动退出怎么办?

使用的是pyside6,代码如下:

app = QApplication([])

dialog = QDialog()
layout = QVBoxLayout()
button_accept = QPushButton("Accept")
button_reject = QPushButton("Reject")

layout.addWidget(button_accept)
layout.addWidget(button_reject)
dialog.setLayout(layout)

# 连接接受和拒绝按钮的信号与槽
button_accept.clicked.connect(dialog.accept)
button_reject.clicked.connect(dialog.reject)
dialog.setWindowModality(Qt.ApplicationModal)

# 显示对话框并等待其关闭
result = dialog.exec()

if result == QDialog.Accepted:
    print("Dialog was accepted.")
else:
    print("Dialog was rejected.")


app.exec()


点击按钮后进程不自动结束,必须手动杀进程,这是为什么?要怎么修改?

实际的程序里这里要有一个输入框,传字符串给后面的窗口,如果点取消的话就不展示后面的窗口了,类似于eclipse的启动窗口

dialog.reject()试试

一样的 不结束
image

还有就是如果用show()反而没问题,但我希望它是模态的…

最后一行exec去掉

这个只是关了dialog,没有关QApplication

或者else后面加个quit()

太谢谢了,原来这两个exec会互相干扰,chatgpt的智商还发现不了这个问题