Linux Ubuntu 12.10、PySide 1.1.1 および python 2.7 で作業しています。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_())
よろしくお願いいたします。
ピエール