日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

QML使用Python的函数

發(fā)布時間:2025/3/20 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QML使用Python的函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

有2種方法:

一、 QML中定義一個信號,連接Python里的函數(shù);

這里的函數(shù)不用特意指明為槽函數(shù),普通函數(shù)即可。

QML的信號連接Python的函數(shù)
QML:
首先在QML中定義一個信號,這里的信號傳遞一個字符串給函數(shù)(信號可帶參數(shù)也可不帶):

signal mySignal(string my_string)

然后在click中發(fā)射這個信號:

onClicked:{root.mySignal("hello world") }

Python:
使用QML里的信號連接Python里的函數(shù):

engine.rootObjects()[0].mySignal.connect(my_func) # 這里的mySignal是在QML里定義的

完整代碼:
QML:

import QtQuick 2.12 import QtQuick.Controls 2.12ApplicationWindow {id: rootwidth: 250height: 500visible: truesignal mySignal(string my_string)MouseArea {id: mouse_areaanchors.fill: parentonClicked: {root.mySignal("hello world")}} }

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ù):

class Person(QObject):def __init__(self):super().__init__()@pyqtSlot() # 注意是槽函數(shù)!def begin(self):print('begin')

然后通過setContextProperty將這個類設(shè)置為上下文的一個屬性值:

person = Person() engine.rootContext().setContextProperty('person', person)

QML文件里不需特別設(shè)置,直接調(diào)用函數(shù)即可。
完整代碼:
Python:

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' from PyQt5.QtGui import QGuiApplication from PyQt5.QtQml import QQmlApplicationEngine from PyQt5.QtCore import QObject, pyqtSlot import sysclass Person(QObject):def __init__(self):super().__init__()@pyqtSlot() # 注意是槽函數(shù)!def begin(self):print('begin')if __name__ == '__main__':app = QGuiApplication(sys.argv)engine = QQmlApplicationEngine()person = Person()engine.rootContext().setContextProperty('person', person)engine.load('qml-test.qml')sys.exit(app.exec())

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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日日射射 | 国产又粗又黄又猛 | 国产福利一区在线 | 欧美专区在线观看 | 久久婷婷网站 | 久久久久久久久久99 | 欧美精品做受xxx性少妇 | 一区二区三区日韩电影 | 日本二区在线观看 | 欧美日韩高清一区二区 国产亚洲免费看 | 午夜大片在线观看 | 国产页| 欧美在线免费视频 | 在线观看第一页 | www麻豆视频| 少妇xxxxxx | 无码内射中文字幕岛国片 | 黄页网址大全免费观看 | 快射视频网 | 国产三级大片 | 亚洲网站在线免费观看 | 日韩视频免费观看高清 | 国语对白少妇spa私密按摩 | 亚洲精品男女 | 另类尿喷潮videofree | 99精品视频在线免费观看 | 日韩精彩视频在线观看 | 久久99精品久久久水蜜桃 | 中文字幕乱码人妻无码久久95 | 免费美女av | 天堂av免费在线观看 | 亚洲第一天堂网 | 国产激情无套内精对白视频 | 国产在线1 | 黑人av | 亚洲精品激情视频 | 91九色视频 | 欧美在线视频免费 | 欧美体内she精高潮 日韩一区免费 | 99国产精品国产精品九九 | 国产精品一区二区三区四区五区 | 91精品视频一区二区三区 | 国产一区二区综合 | 亚洲最大视频网 | 久草手机在线观看 | 性无码专区无码 | 成熟人妻av无码专区 | 午夜久久视频 | 精品中文字幕在线 | 在线久草 | 一级黄色录像免费观看 | 日本人妖xxxx| 午夜免费福利视频 | 亚洲AV无码成人精品一区 | 在线观看网站 | 亚洲欧美精品在线观看 | 国产污在线观看 | 精品乱子伦一区二区 | 麻豆三级在线观看 | 亚洲乱妇老熟女爽到高潮的片 | 中文字幕制服丝袜 | 91麻豆产精品久久久久久 | av在线网站观看 | 乳孔很大能进去的av番号 | 秋霞国产精品 | 久久伊人亚洲 | 一级视频在线 | 一级特黄妇女高潮2 | wwwav在线播放 | 91精品一区二区三区综合在线爱 | 日本五十肥熟交尾 | 国产一级色 | 91毛片观看| 巨乳美女在线 | 男女啪啪免费看 | 插插宗合网| 夜色福利 | 日本黄色美女视频 | av免费观看网址 | 超碰老司机 | 97成人资源站 | 国产精品久久久久影院色老大 | 丰满人妻综合一区二区三区 | 韩国av免费在线观看 | 精品人妻大屁股白浆无码 | 亚洲精品视频一区 | 开心色站 | 日本一区免费视频 | 亚洲一区二区在线观看视频 | 最好看的2019年中文在线观看 | 手机成人免费视频 | 95视频在线观看 | 秋霞午夜影院 | 天天插天天狠 | 午夜精品久久久久久 | www.男女| 波多野结衣视频免费在线观看 | 美女的诞生免费观看在线高清 | 公侵犯人妻一区二区 |