2
QMLがConnectionsオブジェクトを使用してPythonから発信されたシグナルを受け取ることができます。残念ながら、私はそのオブジェクトがそのシグナルの引数を受け取る方法を理解することはできません。PySideシグナル引数をQMLから取り出すことができません
私は私が何をしたいのかを示して最小限のテストケースを作成しました:
min.py
from PySide import QtCore, QtGui, QtDeclarative
import sys
# init Qt
app = QtGui.QApplication(sys.argv)
# set up the signal
class Signaller(QtCore.QObject):
emitted = QtCore.Signal(str)
signaller = Signaller()
# Load the QML
qt_view = QtDeclarative.QDeclarativeView()
context = qt_view.rootContext()
context.setContextProperty('signaller', signaller)
qt_view.setResizeMode(QtDeclarative.QDeclarativeView.SizeRootObjectToView)
qt_view.setSource('min.qml')
qt_view.show()
# launch the signal
signaller.emitted.emit("Please display THIS text!")
# Run!
app.exec_()
そしてmin.qml
import QtQuick 1.0
Rectangle {
width:300; height:100
Text {
id: display
text: "No signal yet detected!"
Connections {
target: signaller
onEmitted: {
display.text = "???" //how to get the argument?
}
}
}
}
ありがとうございました!
ありがとう!それはトリックでした! –