阅读量:0
VScode搭建PyQt + Quick开发环境
目录
环境准备 🔔
- 🔥 安装Python
- 🔥 安装Visual Studio Code
安装必要的Python包 🔔
PyQt有两种库PyQt5
和PySide2
🔎 PyQt5和PySide2的区别
PyQt5
和PySide2
都提供了Python对Qt库的绑定,选择PyQt5还是PySide2,主要取决于你的项目需求和许可要求。如果需要在闭源项目中使用,且不想购买商业许可证,PySide2
可能是更好的选择。如果你希望获得更丰富的社区资源和教程,PyQt5
则是不错的选择。
授权和许可 📄
PyQt5
:采用GPL(GNU General Public License)
或商业许可证。如果你的项目是闭源的,你需要购买商业许可证。PySide2
:由Qt公司(现已被The Qt Company维护)开发,采用LGPL(Lesser General Public License)
或商业许可证。LGPL允许在闭源项目中使用,前提是遵守动态链接和库的修改发布要求。
开发者和支持 📄
PyQt5
:由Riverbank Computing开发和维护,有长期的社区支持。PySide2
:由Qt公司开发和维护,随着Qt框架的更新得到官方支持。
命名空间和模块 📄
PyQt5
:在导入模块时使用from PyQt5 import …PySide2
:在导入模块时使用from PySide2 import …,尽管接口和PyQt5非常相似,但有时需要注意命名空间的差异。
💾 安装PyQt5
需要使用
pip
安装PyQt5
和PyQt5-tool
两个包
📄 安装
PyQt5
:pip install pyqt5
如果下载异常或者下载过久,可以使用镜像安装:
pip install -i https://mirrors.aliyun.com/pypi/simple/ PyQt5
📄 安装
PyQt5-tool
:pip install pyqt5-tool
如果下载异常或者下载过久,可以使用镜像安装:
pip install -i https://mirrors.aliyun.com/pypi/simple/ PyQt5-tool
💾 安装PySide2
pip install PySide2
如果下载异常或者下载过久,可以使用镜像安装:
pip install -i https://mirrors.aliyun.com/pypi/simple/ PySide2
配置VScode 🔔
💻 安装扩展
📄扩展 | 📜作用 |
---|---|
在vscode中使用Python开发必须下载的扩展:
| |
允许你使用VSCode的调试功能来调试Python应用程序。 | |
使用QWidget库进行开发的可安装,可以调用QtDesigner拖拽控件 |
代码示例 🔔
✔ Python调用Qt库的示例
在main.py
中编写python示例:
# main.py from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QTimer, QDateTime from PyQt5.QtGui import QGuiApplication from PyQt5.QtQml import QQmlApplicationEngine, qmlRegisterType class Backend(QObject): mySignal = pyqtSignal(str) def __init__(self, parent=None): QObject.__init__(self) self.timer = QTimer(self) self.timer.timeout.connect(lambda: self.mySignal.emit(QDateTime.currentDateTime().toString("yyyy-MM-dd hh:mm:ss"))) self.timer.start(1000) @pyqtSlot(str) def onButtonClicked(self, text): print(text) if __name__ == "__main__": app = QGuiApplication([]) engine = QQmlApplicationEngine() qmlRegisterType(Backend, "Backend", 1, 0, "Backend") engine.load("main.qml") app.exec_()
✔ 编写Quick 界面
import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.3 import QtQuick.Window 2.2 import Backend 1.0 Window { title: qsTr("Hulu PyQml Example") visible: true width: 300 height: 100 property Backend backend: Backend {} ColumnLayout { spacing: 10 anchors.fill: parent Text { Layout.alignment: Qt.AlignHCenter Layout.preferredWidth: 100 Layout.preferredHeight: 30 id: text } Button { id: button Layout.preferredWidth: 100 Layout.preferredHeight: 30 Layout.alignment: Qt.AlignHCenter text: "Click me" onClicked: { backend.onButtonClicked(button.text) } } } Connections { target: backend function onMySignal(str) { text.text = str } } }
✔ 程序界面
示例工程源码下载:https://download.csdn.net/download/qq_41898196/89557468
发布 🔔
关于编译好程序之后进行打包发布,可以参考该文章《通过PyInstaller把Python文件打包成应用程序》
支持 🔔
如果你觉得这个文章有帮助,请给它一个 👍 和 ⭐!