python关闭 对话框_Python:QMainWindow对话框关闭后Python进程的关闭(或退出)方式...

在同一文件夹中有两个.py文件:dialog_01.py and dialog_02.py

两个文件都是彼此的副本。两者都构建了一个简单的QMainWindow对话框窗口,其中有两个按钮:“Ok”和“Cancel”。

单击“确定”按钮关闭当前打开的对话框窗口并打开另一个窗口。因此,如果单击Dialog_01的“确定”按钮,则关闭Dialog_01并打开Dialog_02。如果单击Dialog_02的“确定”按钮,则Dialog_02关闭,Dialog_01打开,依此类推。

编辑问题:

关闭对话框后,Python进程仍在后台运行(可以在OSX活动监视器或Windows任务管理器中看到)。

如何确保关闭对话框窗口后终止Python进程?

对话01.pyimport sys, os

from PyQt4 import QtCore, QtGui

if 'app' not in globals().keys(): app = QtGui.QApplication(sys.argv)

class Dialog_01(QtGui.QMainWindow):

def __init__(self):

super(QtGui.QMainWindow,self).__init__()

myQWidget = QtGui.QWidget()

myBoxLayout = QtGui.QVBoxLayout()

Cancel_button = QtGui.QPushButton("Cancel")

Cancel_button.clicked.connect(self.Cancel)

myBoxLayout.addWidget(Cancel_button)

Button_01 = QtGui.QPushButton("Press to close this dialog and open Dialog 02")

Button_01.clicked.connect(self.callAnotherQMainWindow)

myBoxLayout.addWidget(Button_01)

myQWidget.setLayout(myBoxLayout)

self.setCentralWidget(myQWidget)

self.setWindowTitle('Dialog 01')

def callAnotherQMainWindow(self):

from dialog_02 import Dialog_02

self.close()

self.dialog_02 = Dialog_02()

self.dialog_02.show()

self.dialog_02.raise_()

def Cancel(self):

self.close()

def closeEvent(self):

self.deleteLater()

if __name__ == '__main__':

dialog_1 = Dialog_01()

dialog_1.show()

dialog_1.resize(480,320)

sys.exit(app.exec_())

对话02.pyimport sys, os

from PyQt4 import QtCore, QtGui

if 'app' not in globals().keys(): app = QtGui.QApplication(sys.argv)

class Dialog_02(QtGui.QMainWindow):

def __init__(self):

super(QtGui.QMainWindow,self).__init__()

myQWidget = QtGui.QWidget()

myBoxLayout = QtGui.QVBoxLayout()

Cancel_button = QtGui.QPushButton("Cancel")

Cancel_button.clicked.connect(self.Cancel)

myBoxLayout.addWidget(Cancel_button)

Button_02 = QtGui.QPushButton("Press to close this dialog 02 and re-open Dialog 01")

Button_02.clicked.connect(self.callAnotherQMainWindow)

myBoxLayout.addWidget(Button_02)

myQWidget.setLayout(myBoxLayout)

self.setCentralWidget(myQWidget)

self.setWindowTitle('Dialog 02')

def callAnotherQMainWindow(self):

from dialog_01 import Dialog_01

self.close()

self.dialog_01 = Dialog_01()

self.dialog_01.show()

self.dialog_01.raise_()

def Cancel(self):

self.close()

def closeEvent(self):

self.deleteLater()

if __name__ == '__main__':

dialog_2 = Dialog_02()

dialog_2.show()

dialog_2.resize(480,320)

sys.exit(app.exec_())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import sys from PyQt5.QtWidgets import QApplication, QWidget , QMainWindow from Calui1 import Ui_Form class Mywindow(QWidget,Ui_Form): def __init__(self): super(Mywindow,self).__init__() self.setupUi(self) def btnClear_clicked(self): self.lineEdit.clear() def btn1(self): self.lineEdit.insert("1") def btn2(self): self.lineEdit.insert("2") def btn3(self): self.lineEdit.insert("3") def btn4(self): self.lineEdit.insert("4") def btn5(self): self.lineEdit.insert("5") def btn6(self): self.lineEdit.insert("6") def btn7(self): self.lineEdit.insert("7") def btn8(self): self.lineEdit.insert("8") def btn9(self): self.lineEdit.insert("9") def btn0(self): self.lineEdit.insert("0") def btn_plus(self): self.lineEdit.insert("+") def btn_sub(self): self.lineEdit.insert("-") def btn_mul(self): self.lineEdit.insert("*") def btn_div(self): self.lineEdit.insert("/") def btnequal(self): text=self.lineEdit.text() self.lineEdit.insert("= %.2f" %(eval(text))) if __name__=='__main__': app=QApplication(sys.argv) win=Mywindow() win.pushButton_7.clicked.connect(win.btnClear_clicked()) win.pushButton.clicked.connect(win.btn1()) win.pushButton_2.clicked.connect(win.btn2()) win.pushButton_3.clicked.connect(win.btn3()) win.pushButton_4.clicked.connect(win.btn_plus()) win.pushButton_5.clicked.connect(win.btn4()) win.pushButton_6.clicked.connect(win.btn7()) win.pushButton_8.clicked.connect(win.btn5()) win.pushButton_9.clicked.connect(win.btn8()) win.pushButton_10.clicked.connect(win.btn0()) win.pushButton_11.clicked.connect(win.btn6()) win.pushButton_12.clicked.connect(win.btn9()) win.pushButton_13.clicked.connect(win.btnequal()) win.pushButton_14.clicked.connect(win.btn_sub()) win.pushButton_15.clicked.connect(win.btn_mul()) win.pushButton_16.clicked.connect(win.btn_div()) win.show() sys.exit(app.exec_())错在哪
05-26

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值