Python QApplication:显示*参数无效

Python QApplication:显示*参数无效,python,pyqt,pyqt4,qapplication,Python,Pyqt,Pyqt4,Qapplication,遵循本教程: 此代码运行后,窗口将打开,但出现错误消息,应用程序无法正确关闭,即,退出的唯一方法是退出终端。 下面的代码正是唯一的区别是shebang,因为我使用python3,所以使用该shebang。我现在已经使用Qt4几个星期了,以前没有遇到过这个问题,但我只是刚刚了解到如何确保只有一个QApplication实例正在运行,等等。因此,代码中一定有导致问题的原因。不幸的是,我没有找到任何关于显示参数是什么的信息。任何帮助都将不胜感激 #!/usr/bin/python3 """ Ma

遵循本教程:

此代码运行后,窗口将打开,但出现错误消息,应用程序无法正确关闭,即,退出的唯一方法是退出终端。 下面的代码正是唯一的区别是shebang,因为我使用python3,所以使用该shebang。我现在已经使用Qt4几个星期了,以前没有遇到过这个问题,但我只是刚刚了解到如何确保只有一个QApplication实例正在运行,等等。因此,代码中一定有导致问题的原因。不幸的是,我没有找到任何关于显示参数是什么的信息。任何帮助都将不胜感激

#!/usr/bin/python3 

""" Main entry point to the nexsys application. """

# define authorship information
__authors__     = ['Eric Hulser']
__author__      = ','.join(__authors__)
__credits__     = []
__copyright__   = 'Copyright (c) 2011'
__license__     = 'GPL'

# maintanence information
__maintainer__  = 'Eric Hulser'
__email__       = 'eric.hulser@gmail.com'

from PyQt4 import QtGui

def main(argv = None):
   """
   Creates the main window for the nexsys application and begins the \
   QApplication if necessary.

   :param      argv | [, ..] || None

   :return      error code
   """
   app = None

   # create the application if necessary
   if ( not QtGui.QApplication.instance() ):
       app = QtGui.QApplication(argv)
       app.setStyle('plastique')

   # create the main window
   QtGui.QMessageBox.information(None, 'Stub', 'Create the Main Window!')

   # run the application if necessary
   if ( app ):
       return app.exec_()

   # no errors since we're not running our own event loop
   return 0

if ( __name__ == '__main__' ):
   import sys
   sys.exit(main(sys.argv))

教程参考的URL不完整。您提供的链接不存在,因此博客会将其重定向到开头。另一方面完整的错误消息是什么?如果你说应用程序没有正确关闭,那就是即使窗口关闭了,应用程序也没有完成。这个例子是错误的。在Qt中,对话框有自己的事件循环,因此在对话框关闭后调用
app.exec(()
)是错误的。如果您这样做,程序将只是坐在那里等待用户输入-但您不再有任何gui,因此无法退出应用程序!要修复这个示例,只需注释掉下面的两行
#必要时运行应用程序
。PS:如果您刚刚开始,我强烈建议您使用PyQt5而不是PyQt4。Qt4和PyQt4都已过时,不再受支持。对于一个好的PyQt5教程,我建议您尝试。教程参考的URL不完整。您提供的链接不存在,因此博客会将其重定向到开头。另一方面完整的错误消息是什么?如果你说应用程序没有正确关闭,那就是即使窗口关闭了,应用程序也没有完成。这个例子是错误的。在Qt中,对话框有自己的事件循环,因此在对话框关闭后调用
app.exec(()
)是错误的。如果您这样做,程序将只是坐在那里等待用户输入-但您不再有任何gui,因此无法退出应用程序!要修复这个示例,只需注释掉下面的两行
#必要时运行应用程序
。PS:如果您刚刚开始,我强烈建议您使用PyQt5而不是PyQt4。Qt4和PyQt4都已过时,不再受支持。对于一个好的PyQt5教程,我建议您试试。