我正在使用 PySide 1.1.1 和 python 2.7 使用 Linux Ubuntu 12.10 我在通过 QStateMachine 发布 QEvent 时遇到问题。
如果我想让它工作,我必须保留事件的参考,否则它会崩溃。我已经设置了一些示例代码来说明我的问题。
我想知道我做错了还是已知问题以及是否应该使用解决方法(保留事件参考)?
#!/usr/bin/python
from __future__ import print_function
import sys
from PySide.QtCore import *
from PySide.QtGui import *
app = QApplication(sys.argv)
sm = QStateMachine()
init = QState(sm)
sm.setInitialState(init)
sm.start()
e = None
def no_crash():
global e
print("send an event that doesn't crash...")
e = QEvent(QEvent.Type(QEvent.registerEventType()))
sm.postEvent(e)
def crash():
print("and one that does...")
e = QEvent(QEvent.Type(QEvent.registerEventType()))
sm.postEvent(e)
QTimer.singleShot(2000, no_crash)
QTimer.singleShot(4000, crash)
sys.exit(app.exec_())
提前感谢您的帮助
皮埃尔