首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带PyQt5的QtQuickControls 2.0

带PyQt5的QtQuickControls 2.0
EN

Stack Overflow用户
提问于 2016-09-09 19:11:14
回答 1查看 2.5K关注 0票数 1

我设置了一个虚拟环境并安装了pyqt5 (PyQt5-5.7-cp35-cp35m-manylinux1_x86_64.whl):

代码语言:javascript
复制
virtualenv -p /usr/bin/python3.5 .
source bin/activate
pip install pyqt5

我创建了一个basic.qml文件:

代码语言:javascript
复制
import QtQuick 2.7
import QtQuick.Controls 2.0

Rectangle {
    width: 300
    height: 100
    color: "red"
}

并尝试在我的python代码中使用以下命令加载它:

代码语言:javascript
复制
import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtQuick import QQuickView

if __name__ == '__main__':
    myApp = QApplication(sys.argv)

    view = QQuickView()
    view.setSource(QUrl('basic.qml'))
    view.show()

    sys.exit(myApp.exec_())

它失败了,错误为

代码语言:javascript
复制
file:///[...]/main.qml:2:1: plugin cannot be loaded for module "QtQuick.Controls": Cannot load library /[virtualenv]/lib/python3.5/site-packages/PyQt5/Qt/qml/QtQuick/Controls.2/libqtquickcontrols2plugin.so: (libQt5QuickTemplates2.so.5: Can't open shared object file: File or directory not found) 
     import QtQuick.Controls 2.0 
     ^

Process finished with exit code 0

我查过了。它抱怨的这个文件实际上并不存在。但是我怎么安装它呢?PyQt5完全支持QtQuickControls2吗?

如果我将basic.qml中的导入从import QtQuick.Controls 2.0切换到import QtQuick.Controls 1.2,则可以正常工作。但我想使用新的控件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-10 05:46:13

这看起来像是PyQt5中的一个错误。该包同时缺少libQt5QuickTemplates2.solibQt5QuickControls2.so

希望PyQt 5.7包包含的Qt 5.7版本和qt.io上提供的官方Qt 5.7版本是以完全二进制兼容的方式构建的,一种可能是从qt.io下载并安装Qt 5.7,并将缺少的库复制到您的virtualenv中。例如:

代码语言:javascript
复制
$ cp ~/Qt/5.7/gcc_64/lib/libQt5QuickTemplates2.* path/to/lib/python3.5/site-packages/PyQt5/Qt/lib
$ cp ~/Qt/5.7/gcc_64/lib/libQt5QuickControls2.* path/to/lib/python3.5/site-packages/PyQt5/Qt/lib
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39410243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档