python - 从 Python 设置 qml 属性?

标签 python qt qml pyside

我正在尝试使用 Python、PySide 和示例 QML 文件制作一个简单的用户界面。 如何从我的 Python 应用程序设置 QML 控件中可用的“值”属性?截至目前,“SpeedDial”出现了,但无法弄清楚如何更改它的值。

Python 文件:

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtDeclarative import QDeclarativeView

# Create Qt application and the QDeclarative view
app = QApplication(sys.argv)
view = QDeclarativeView()
# Create an URL to the QML file
url = QUrl('SpeedDial.qml')

# Set the QML file and show
view.setSource(url)
view.show()
# Enter Qt main loop
sys.exit(app.exec_())

qml 文件:

import QtQuick 1.0

Item  {
id: root1
property real value : 0

width: 300; height: 300

Image  { id: speed_inactive; x: -9; y: 8; opacity: 0.8; z: 3; source: "pics/speed_inactive.png"

}
Image  {
    id: needle
    x: 136; y: 86
    clip: true
    opacity: root1.opacity
    z: 3
    smooth: true
    source: "pics/needle.png"
    transform: Rotation  {
        id: needleRotation
        origin.x: 5; origin.y: 65
        angle: Math.min(Math.max(-130, root1.value*2.6 - 130), 133)

        Behavior on angle  {
            SpringAnimation  {
                spring: 1.4
                damping: .15
            }
        }
    }
}
}

最佳答案

您不应该直接从 Python 或 C++ 控制 QML 属性。

定义一个 Python 类,该类将表示具有属性 speed 的汽车。像这样在 QML 中实例化它:

Car {
    id: car
}

然后使用它的速度:

angle: car.speed 

关于python - 从 Python 设置 qml 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38705765/

相关文章:

python - 我是否以正确的方式管理异步任务(python 3.9)?

c++ - 如何在 QML 文件中调用 QObject 的指针?

python - 如何将这种类型的数据 <hdf5 object reference> 转换为在 python 中更具可读性的内容?

javascript - 如何通知客户端浏览器有关服务器上的某些事件?

python - Python 解释器中 _(下划线)变量的值意外更改

c++ - 检查我的 QMainWindow 当前在 Qt 中是否可见

javascript - Qt WebKit 和 HTML5 地理定位

c++ - Qt 应用程序从 QtCreator 启动时会找到库,但不能从命令行启动

c++ - QML 中的着色器插件安装

qml - 无法将 QtQuick Controls 2 与 Pyside 2 一起使用