qml调用python_PySide:将数据从QML传递到Python

我正在尝试将数据从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")

}

}

}

}

单击按钮时,我希望它打印“测试”,但我得到此错误:

TypeError: printText() takes exactly 2 arguments (1 given)

我错过了什么?

编辑:将示例更改为更简单的示例.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值