我是一名有用的助手,可以为您翻译文本。
我正在尝试从QML向Python发送数据,但是出现了错误。
test.py:
#!/usr/bin/env python
import sys
from PySide import QtCore, QtGui, QtDeclarative
class Test( QtCore.QObject ):
def __init__( self ):
QtCore.QObject.__init__(self)
@QtCore.Slot()
def printText(self,text):
print text
class MainWindow( QtDeclarative.QDeclarativeView ):
def __init__( self, parent=None ):
super( MainWindow, self ).__init__( parent )
self.setWindowTitle( "Test" )
self.setSource( QtCore.QUrl.fromLocalFile( './test.qml' ) )
self.setResizeMode( QtDeclarative.QDeclarativeView.SizeRootObjectToView )
app = QtGui.QApplication( sys.argv )
window = MainWindow()
context = window.rootContext()
context.setContextProperty("testModel",Test())
window.show()
sys.exit( app.exec_() )
test.qml:
import QtQuick 1.0
Rectangle {
width: 200
height: 200
color: "white"
Rectangle {
anchors.centerIn: parent
width: 100
height: 50
color: "black"
Text {
anchors.centerIn: parent
text: "click"
color: "white"
}
MouseArea {
anchors.fill: parent
onClicked: {
testModel.printText("test")
}
}
}
}
当点击按钮时,我希望它打印出 "test",但是实际上我收到了以下错误信息:
我错过了什么吗?TypeError: printText()需要两个参数,但给定了1个