pyqt5 qml 信号槽连接
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
ApplicationWindow{
visible:true
width:640
height:480
id:window
title:asTr("editor")
signal show(string text)
TextArea{
text:"hello"
onTextChanged:show(text);
}
}
import sys
from PyQt5.QtCore import QObject, QUrl, Qt
from PyQt5.QtWidgets import QApplication
from PyQt5.QtQml import QQmlApplicationEngine
def show(text):
print(text)
if __name__ == "__main__":
app = QApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.load('main.qml')
win = engine.rootObjects()[0]
win.show()
sys.exit(app.exec_())
代码如上,我想用python代码中的show方法和qml文件中的show信号连接起来,我该怎么做呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
写在qml里,我用C++的代码作为例子,python的做法应该是类似的,首先把C++对象(或python对象)暴露给qml:
engine.rootContext()->setContextProperty("myContext", myContext);
myContext要继承QObject,然后在qml里connect,如: