【发布时间】:2014-03-25 20:54:31
【问题描述】:
我正在尝试为我正在进行的项目学习 PySide。我正在学习Zetcode 教程,但从一开始我就遇到了问题。我正在通过 Enthought 的 Canopy 编写和运行我的代码。当我从命令行运行代码时,它工作正常。 This question 可能与我的问题有关,但那里没有给出答案。
当我使用教程中最简单的代码时
import sys
from PySide import QtGui
wid = QtGui.QWidget()
wid.resize(250, 150)
wid.setWindowTitle('Simple')
wid.show()
一切运行正常。除了从 OOP 的角度来看,下一个示例大致相同。
import sys
from PySide import QtGui
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Icon')
self.setWindowIcon(QtGui.QIcon('web.png'))
self.show()
def main():
ex = Example()
if __name__ == '__main__':
main()
程序运行时会闪烁(我可以看到窗口出现一秒钟)然后关闭。在main() 结束之前引发异常将使窗口保持在屏幕上。
TL;DR
为什么将程序放在一个类中会使其不起作用?
【问题讨论】:
-
我尝试运行您的代码,它运行良好。也许 Canopy 给你带来了麻烦?
-
@ivica 从命令行运行程序有效,Canopy 似乎是问题所在。不过,我仍然希望能够使用 Canopy,所以如果您知道解决方案,将不胜感激
标签: python python-2.7 pyside canopy