PyQt/QtQuick/README.md
2019-09-18 23:20:18 +08:00

1.1 KiB
Raw Blame History

QtQuick

1、Flat样式

运行 FlatStyle.py

FlatStyle

2、QML与Python交互

运行 Signals.py

交互的办法有很多种由于主要界面功能都是有QML来实现Python只是作为辅助提供部分功能。 于是和浏览器中js与python交互方式类似提供一个Python对象给QML访问。

  1. 通过 engine.rootContext().setContextProperty('_Window', w) 注册提供一个Python对象
  2. Python对象中被访问的方法前面使用装饰器 @pyqtSlot,比如: @pyqtSlot(int) 或者 @pyqtSlot(str, result=str) # 可以获取返回值
  3. QML中的信号或者Python对象中的信号都可以互相绑定对方的槽函数
Component.onCompleted: {
    // 绑定信号槽到python中的函数
    valueChanged.connect(_Window.onValueChanged)
    // 绑定python中的信号到qml中的函数
    _Window.timerSignal.connect(appendText)
}

Signals