利用 PyQt5 中的 QtQuick 控件

Posted

技术标签:

【中文标题】利用 PyQt5 中的 QtQuick 控件【英文标题】:Utilizing QtQuick Controls from PyQt5 【发布时间】:2014-05-20 15:22:31 【问题描述】:

首先,我尝试使用PySide 中的QtQuick。目前最新的 PySide 包含 Qt 4.8,它没有积极开发的桌面组件。 (colibri 在那里,但它不适用于桌面,而且有问题)。

PyQt 似乎在这里胜出,因为最新版本(截至今天为 5.2.1)封装了 Qt 5,其中已准备好 QtQuick 控件。

我查看了Lib/site-packages/PyQt5/examples/quick 下的许多示例,它们都有效,但没有一个使用 QtQuick 控件。

我在这里尝试一个非常简单的 qml:

//main.qml
import QtQuick.Controls 1.2

ApplicationWindow 
    title: "My Application"

    Button 
        text: "Push Me"
        anchors.centerIn: parent
    

还有一个python文件:

from PyQt5.QtWidgets import QApplication
from PyQt5.QtQml import QQmlApplicationEngine
import sys


if __name__ == "__main__":
  app = QApplication(sys.argv)
  engine = QQmlApplicationEngine("main.qml")
  engine.quit.connect(app.quit)
  sys.exit(app.exec_())

但我遇到了这个错误:

.../main.qml:1 module "QtQuick.Controls" version 1.2 is not installed

我可以使用 PyQt5 中的 QtQuick 控件吗?如果是这样,如何?我到处都找不到。

【问题讨论】:

【参考方案1】:

您是否尝试使用 QtQuick.Controls 1.0,它在我的系统上运行良好

【讨论】:

是的,我试过但失败了。我该怎么做?。请给一些代码。我尝试了 QtQuick.Controls 1.0 并且脚本运行了,但我什么也没看到。 把这个添加到你的python代码中:codewin = self.engine.rootObjects()[0] win.show() 尝试在您的 QML 中将 visible: true 添加到 ApplicationWindow。此外,1.2 版至少适用于 PyQt 5.3.1

以上是关于利用 PyQt5 中的 QtQuick 控件的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 QtQuick 错误 - “libQt5Network 未定义符号:_Z24qt_subtract_from_timeoutii”

如何从 PySide 访问 QML\QtQuick 控件?

为啥有些 QtQuick 控件有隐藏变量?

QtQuick/Qml自定义控件(1)-ToolTip

库需要 QApplication。如何在 Qt Quick 项目中使用 QApplication?

QtQuick Rectangle 控件显示啥边框?