0

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_())

よろしくお願いいたします。

ピエール

4

1 に答える 1