所以这是问题所在: 我正在pyqt中构建一个应用程序:
frame1.py
from PyQt5 import QtWidgets, QtCore, QtGui
import runpy, sys
class LoginFrame(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.logFrameSetup(self)
def logFrameSetup(self, GuiWin):
GuiWin.setWindowTitle('GuiWin')
GuiWin.resize(450, 215)
self.pushbutton = QtWidgets.QPushButton('Go To', GuiWin)
self.pushbutton.clicked.connect(self.change)
def change(self):
try:
runpy.run_path('frame2.py', run_name="__main__")
except:
pass
finally:
self.close()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
ex = LoginFrame()
ex.show()
x = app.exec_()
sys.exit(x)
frame2.py
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class MainTradingPlatform(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.setupFrame(self)
def setupFrame(self, frame2):
frame2.setWindowTitle('2frame')
frame2.resize(1200, 1000)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
ex = MainTradingPlatform()
ex.show()
x = app.exec_()
sys.exit(x)
现在这几乎是完美的,但是当我关闭frame2.py时,后台进程仍在进行中/正在运行 我想要实现的是通过关闭frame2.py,进程完成退出代码。 (终止)
ps:在调用frame2.py之后,我还要终止frame1。
感谢您的帮助,对不起我的回复。
答案 0 :(得分:0)
当您使用runpy执行代码时,该进程与初始应用程序分离,关闭第二个应用程序的选项是覆盖closeEvent方法。
-(void)saveContext {
NSError *error = nil;
NSManagedObjectContext *managedObjectContext =
self.managedObjectContext;
if (managedObjectContext != nil) {
if ([managedObjectContext hasChanges] && ![managedObjectContext
save:&error]) {
}
}
}