方式1
import sys, os
from PyQt5.QtCore import QProcess
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, qApp
cur_dir = os.path.dirname(sys.argv[0])
if cur_dir == "":
cur_dir = '.'
class MyWin(QWidget):
def __init__(self):
super().__init__()
self.btn = QPushButton(self, text="重启")
self.btn.clicked.connect(self.restart)
def restart(self):
qApp.quit()
QProcess.startDetached(qApp.applicationFilePath(), [os.path.join(cur_dir, '1.py')])
if __name__ == '__main__':
app = QApplication(sys.argv)
mywin = MyWin()
mywin.show()
sys.exit(app.exec())
方式2
import sys
from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, qApp
class MyWin(QWidget):
def __init__(self):
super().__init__()
self.btn = QPushButton(self, text="重启")
self.btn.clicked.connect(self.restart)
def restart(self):
qApp.exit(current_exit_code)
if __name__ == '__main__':
current_exit_code = 1002457844
app = QApplication(sys.argv)
while True:
mywin = MyWin()
mywin.show()
code = app.exec()
if code != current_exit_code:
break