gpt4 book ai didi

python - 重新启动 QApplication 的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-28 22:55:28 25 4
gpt4 key购买 nike

我正在使用 PySide,并正在寻找重新启动我的 Qt 应用程序的方法。这个是要依赖python,还是得用Qt来控制?

根据 ROSTYSLAV 的建议:

class MyAppMainWindow(QMainWindow):
def __init__(self):

self.EXIT_CODE_REBOOT = -15123123
exit_code = self.EXIT_CODE_REBOOT

def slotReboot(self):

print "Performing application reboot.."
qApp.exit( self.EXIT_CODE_REBOOT )

def main():
currentExitCode = 0
app = QApplication(sys.argv)
ex = MyAppMainWindow()

while currentExitCode == ex.EXIT_CODE_REBOOT :
currentExitCode = app.exec_()

return currentExitCode

if __name__ == '__main__':
main()

显然我没有完全理解。请帮忙。

最佳答案

Qt 提供了一个很好的方法 Wiki关于如何使您的应用程序可重新启动。该方法基于 QApplication 实例的重建,而不是终止当前进程。

它可以很容易地被 PySide 采用,就像下一个片段所示:

EXIT_CODE_REBOOT = -15123123 # you can use any unique value here
exit_code = EXIT_CODE_REBOOT # Just for making cycle run for the first time

while exit_code == EXIT_CODE_REBOOT:
exit_code = 0 # error code - no errors happened
app = QApplication(sys.argv)
...
exit_code = app.exec()

在完成您的应用程序之前,您只需通过 QApplication 提供的 API 设置正确的退出代码。您可以在创建新应用程序实例时挂接新配置或任何您需要的内容。

关于python - 重新启动 QApplication 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16892407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com