欢迎光临散文网 会员登陆 & 注册

QML与python之间的通信

2022-09-28 21:02 作者:五月天山雪Ls  | 我要投稿

使用python+QML制作软件界面时,python与QML之间的互通是一个问题,通常使用的不外乎两种方式:1.python响应QML信号;2.QML响应python信号

对于1,一般使用的是在QML里直接调用python函数;对于2,一般是python发出信号,QML接收信号并处理。

鉴于网络上的资料比较少且良莠不齐,在此整理分享以便于查阅。

1 QML调用python函数

关键步骤:python函数使用Slot修饰符;实例化类并添加到QML文件上下文;QML文件中根据自己定义的名字调用该函数。

python文件

qml文件

2 python发信号,QML接收并处理

关键步骤:类里面定义信号 (在init方法外面);QML中使用Connections绑定python的类与信号的槽函数(这里QML会提示警告,但是用他建议的方法写就跑不通了,不管他了,就这样吧)

python文件

qml文件

其实平常一般用第一种方法就够了,但是在需要开多线程的时候,可能要在某个线程工作完成之后通知主线程。开个计时器一直查询该线程是否结束固然可以,但是太浪费资源,这时第二种方法就派上用场了,子线程完成后可以发送信号通知主线程任务结束,进而执行后续工作。

QML与python之间的通信的评论 (共 条)

分享到微博请遵守国家法律