博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于PyQt5响应QML发送信号的方法?
阅读量:5879 次
发布时间:2019-06-19

本文共 1401 字,大约阅读时间需要 4 分钟。

hot3.png

QML是一个解释型的语言,语法像CSS,可以嵌入JavaScript,这正好符合我使用Python的风格,简单,好用。
    以下的例子是基于Python3.3+PyQt5.1+QML的例子,通过点击鼠标,然后QML响应事件后发送一个信号到PyQt5,然后调用指定的函数。
以下是源代码:

Python3.3的代码

from PyQt5.QtCore import QUrlfrom PyQt5.QtGui import QGuiApplicationfrom PyQt5.QtQuick import QQuickViewdef outputString(string):    print(string)if __name__ == '__main__':    # path = r'test\main.qml'    path = 'main.qml'    app = QGuiApplication([])    view = QQuickView()    view.engine().quit.connect(app.quit)    view.setSource(QUrl(path))    view.show()    context = view.rootObject()    context.sendClicked.connect(outputString)   # 连接QML文件中的sendClicked信号    app.exec_()
QML部分的代码:
import QtQuick 2.0Rectangle {    id: root    width: 320; height: 240    color: "lightgray"    signal sendClicked(string str1) // 定义信号    Rectangle {        id: rect        width: 200; height: 100; border.width: 1        anchors.centerIn: parent        Text {            id: txt            text: "Clicked me"            font.pixelSize: 20            anchors.centerIn: rect        }    }    MouseArea {        id: mouse_area        anchors.fill: rect  // 有效区域        onClicked: {           parent.sendClicked("Hello, Python3")    // 发射信号到Python        }    }}

运行效果如下:

QML文件需要保存为main.qml,否则会出现找不到*.qml文件的问题。

通过点击运行效果图的白色区域,就可以在控制台打印"Hello, Python3"的字符串。

以上代码如有不明白的,欢迎评论。

另外,如果有哪位知道如何使用PyQt5发送信号到QML的,可以告诉我一下,谢谢!!

转载于:https://my.oschina.net/u/1275030/blog/184899

你可能感兴趣的文章
图像处理------调整亮度与饱和度
查看>>
Otter-入门篇4(单向同步实践)
查看>>
【阿里在线技术峰会】方超:阿里聚安全在互联网业务中的创新实践
查看>>
SOCKET 编程TCP/IP、UDP
查看>>
CAN总线基础知识(二)
查看>>
MySQL内核月报 2014.09-MySQL· 限制改进·GTID和升级
查看>>
Angular Input格式化
查看>>
mysql backup 脚本
查看>>
spring 和hibernate项目制作可执行的jar包
查看>>
xfs vs jfs vs reiserfs
查看>>
编译单个Java文件引入jar包
查看>>
Windows无法安装到这个磁盘。请确保在计算机的BIOS菜单中启用了磁盘控制器
查看>>
Fluent interface
查看>>
java定时器和多线程实践记录
查看>>
HashMap源码分析(jdk1.8)
查看>>
iOS加载程序视图的方式
查看>>
【技术干货】基于Jquery实现Web应用国际化
查看>>
线性表的顺序表示和实现
查看>>
C语言指针的长度和类型
查看>>
配置高可用的Hadoop平台
查看>>