gpt4 book ai didi

python - PyQt 重新启动 shell

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:19 25 4
gpt4 key购买 nike

如果我尝试在 IDLE shell 中创建窗口或提示文件对话框,则不会打开任何内容并且 shell 会重新启动。这是某种错误吗?我找不到任何相关信息。我是 PyQt(以及一般的 Python)新手,但已经能够让教程正常工作。最后一天左右,如果我打开 IDLE 并导入 PyQt4、QtGui 等,然后运行 ​​QFileDialog.getOpenFileName 等简单的东西,shell 就会重新启动。有任何想法吗?

最佳答案

您需要有一个QApplication,然后才能使用 PyQt 中的任何其他内容。尝试重读您遵循的一些教程,或者多读一些。 This one例如。

在上述教程的第一个代码示例中,请特别注意这些行(为了方便起见,我添加了教程中的注释):

app = QtGui.QApplication(sys.argv)

Every PyQt4 application must create an application object. The application object is located in the QtGui module. The sys.argv parameter is a list of arguments from the command line. Python scripts can be run from the shell. It is a way, how we can control the startup of our scripts.

sys.exit(app.exec_())

Finally, we enter the mainloop of the application. The event handling starts from this point. The mainloop receives events from the window system and dispatches them to the application widgets. The mainloop ends, if we call the exit() method or the main widget is destroyed. The sys.exit() method ensures a clean exit. The environment will be informed, how the application ended.

The exec_() method has an underscore. It is because the exec is a Python keyword. And thus, exec_() was used instead.

看来您可能已经忘记了这些。或者您可能还没有意识到这意味着您通常无法在交互式 shell 中将 PyQt 与正在运行的事件循环一起使用。但是,有一个技巧,请参阅 here .

关于python - PyQt 重新启动 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10949426/

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