QML使用Python的函数
生活随笔
收集整理的這篇文章主要介紹了
QML使用Python的函数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有2種方法:
一、 QML中定義一個信號,連接Python里的函數(shù);
這里的函數(shù)不用特意指明為槽函數(shù),普通函數(shù)即可。
QML的信號連接Python的函數(shù)
QML:
首先在QML中定義一個信號,這里的信號傳遞一個字符串給函數(shù)(信號可帶參數(shù)也可不帶):
然后在click中發(fā)射這個信號:
onClicked:{root.mySignal("hello world") }Python:
使用QML里的信號連接Python里的函數(shù):
完整代碼:
QML:
Python:
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' from PyQt5.QtCore import QObject from PyQt5.QtGui import QGuiApplication from PyQt5.QtQml import QQmlApplicationEngine import sysclass MyWindow(QObject):def __init__(self):super().__init__()self.engine = QQmlApplicationEngine()self.engine.load('qml-test.qml')# root signalmy_obj = self.engine.rootObjects()[0]my_obj.mySignal.connect(self.my_func)def my_func(self, my_string):print(my_string)if __name__ == '__main__':app = QGuiApplication(sys.argv)window = MyWindow()sys.exit(app.exec())二、 Python中定義一個類及槽函數(shù),在QML中使用這個槽函數(shù)。
在QML中調(diào)用Python中的槽函數(shù)
首先需要在Python里定義一個類,在類里寫一個槽函數(shù):
然后通過setContextProperty將這個類設(shè)置為上下文的一個屬性值:
person = Person() engine.rootContext().setContextProperty('person', person)QML文件里不需特別設(shè)置,直接調(diào)用函數(shù)即可。
完整代碼:
Python:
QML:
import QtQuick 2.12 import QtQuick.Controls 2.12ApplicationWindow {id: rootwidth: 250height: 500visible: trueButton{text:qsTr("begin")onClicked: {person.begin()}} }總結(jié)
以上是生活随笔為你收集整理的QML使用Python的函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python实现-中介者模式
- 下一篇: 使用python操作常用的库-kafka