Python - PyQt6、QDesigner、pyuic5-tool 安装使用

这篇具有很好参考价值的文章主要介绍了Python - PyQt6、QDesigner、pyuic5-tool 安装使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python 开发可视化界面可以使用原生的 tkinter,但是原生框架使用起来颇为不方便,所以最流行的还是QT UI框架,QT是使用C++语言开发,Python 想使用需要对其进行封装,所以就出现了PyQt框架,这个框架使用极其方便,而且可以多端运行。

1.安装 PyQt 框架

本人使用的是Mac 2023款 Apple M1芯片,Python版本是3.9,开发IDE使用的 PyCharm
Qt 官网文档 ,
https://www.qt.io/download
https://riverbankcomputing.com/software/pyqt/download

Qt的长期支持版(LTS)有 Qt 5.15Qt 6.2Qt 6.5,所以我首先选的是 PyQt5 版本下载

pip install PyQt5

问题开始出现了,安装 PyQt5报错了 Encountered error while generating package metadata

      sipbuild.pyproject.PyProjectOptionException
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

首先不是pip的问题,pip我已经更新到最新了,查找好多资料,基本可以确定是Python3.9版本过高导致的,需要使用Python3.7版本,但是我没有去给Python降级,因为电脑中还有需要使用Python的地方用到该版本的,这里降级在引出别的问题,所以放弃 PyQt5,下面安装PyQt6

pip install PyQt6

很幸运币,顺利就安装好了!!
Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt

试用下看看效果

from PyQt6.QtWidgets import *  # 导入PyQt6

if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = QWidget()
    w.setWindowTitle("我是一个Window")
    w.show()
    app.exec()

一切顺利,运行起来了

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt

2. 安装 QtDesigner

PyQt6使用纯代码进行布局,作为开发者肯定无法接受,尤其是作为iOS开发的我用惯使用了 StoryBoardXib等拖拽控件的方式进行布局,PyQt也有这种方式就是 QtDesigner

QtDesigner 下载地址:https://build-system.fman.io/qt-designer-download。

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt
选择 Mac 版下载,然后安装:

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt

PyCharm中安装External Tool,PyCharm -> settings -> Tools -> External Tool

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt
1.Name: 随意填写 例如 QtDesigner;
2.Program:这个就是我们上面下载的 Qt Designer App 路径 /Applications/Qt Designer.app
3.Working directory:项目工作目录,固定填写 $ProjectFileDir$

其他项可不填写,点击 OK 保存。然后我们在PyCharm的导航栏Tools中查看是否已经添加好了:

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt
QtDesigner已经存在了,说明已经添加好了,然后点击这个插件,会出现下面6个视图,最用基本上见名知意,很好理解:
Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt

点击中间视图的 Create 按钮,创建一个Window或者Widget:

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt

中间就是一个Widget我拖拽了两个QLabel两个QLineEdit以及一个QPushButton,当然你可以随意拖拽任意组件,点击保存:

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt
保存到桌面,会生成一个.ui文件,即 my_widget.ui

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt
Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt

我们将这个文件拖到我们项目中

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt

如果想加载这个文件需要用到 pyuic5-tool ,下面来安装这个库。

3.安装 pyuic5-tool

 pip install pyuic5-tool

安装结果

(venv) sunshiyu@sunshiyudeMacBook-Pro-2 gui-demo % pip3 install pyuic5-tool
Collecting pyuic5-tool
  Downloading pyuic5_tool-0.0.1-py3-none-any.whl (9.8 kB)
Installing collected packages: pyuic5-tool
Successfully installed pyuic5-tool-0.0.1

很幸运Python3.9直接安装成功。好的,我们继续来加载上面的 my_test.ui 文件:

import sys

from PyQt6.QtCore import *
from PyQt6.QtWidgets import *
from PyQt6.QtGui import *
from PyQt6 import uic


if __name__ == '__main__':
    pass
    app = QApplication(sys.argv)
    mw = uic.loadUi("./my_test.ui")  # 加载.ui文件,传入其所在路径即可
    mw.show()
    app.exec()

我们想如果能将 my_test.ui 文件转成 .py文件 ,那不是更爽吗?是的,我们可以实现它,接下来我们安装第二个插件:

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt

和QtDesigner很相似,填写数据:

1.Name:随便写,例如 pyUIC;
2.Program:这个是我们安装 pyuic5-tool 的路径,我的是在venv中,/Users/sunshiyu/Desktop/其他/Python/gui-demo/venv/bin/pyuic6
3.Arguments:基本也是固定写法$FileName$ -o $FileNameWithoutExtension$.py
4.Working directory:工作路径 $FileDir$

pyuic6的路径在:
Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt

点击 OK,我们用相同的方式查看该插件是否已经添加完成:

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt

显然已经添加成功,下面右键点击my_test.ui文件 -> External Tools -> pyUIC,点击插件 pyUIC,就会在同目录下生成一份my_test,py文件,如下图:

Python - PyQt6、QDesigner、pyuic5-tool 安装使用,Python,python,开发语言,PyQt
生成的代码如下:文章来源地址https://www.toymoban.com/news/detail-701435.html

# Form implementation generated from reading ui file 'my_test.ui'
#
# Created by: PyQt6 UI code generator 6.5.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(491, 378)
        self.pushButton = QtWidgets.QPushButton(parent=Form)
        self.pushButton.setGeometry(QtCore.QRect(190, 270, 113, 32))
        self.pushButton.setObjectName("pushButton")
        self.label = QtWidgets.QLabel(parent=Form)
        self.label.setGeometry(QtCore.QRect(40, 30, 60, 16))
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(parent=Form)
        self.label_2.setGeometry(QtCore.QRect(40, 60, 60, 16))
        self.label_2.setObjectName("label_2")
        self.lineEdit = QtWidgets.QLineEdit(parent=Form)
        self.lineEdit.setGeometry(QtCore.QRect(100, 30, 113, 21))
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtWidgets.QLineEdit(parent=Form)
        self.lineEdit_2.setGeometry(QtCore.QRect(100, 60, 113, 21))
        self.lineEdit_2.setObjectName("lineEdit_2")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.pushButton.setText(_translate("Form", "点击"))
        self.label.setText(_translate("Form", "账号:"))
        self.label_2.setText(_translate("Form", "密码:"))

到了这里,关于Python - PyQt6、QDesigner、pyuic5-tool 安装使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • PyQt6把QTDesigner生成的UI文件转成python源码,并运行

    PyQt6把QTDesigner生成的UI文件转成python源码,并运行

    锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计18条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库QTDesigner安装

    2024年04月11日
    浏览(9)
  • 免费分享一套PyQt6学生信息管理系统 Python管理系统 Python源码,挺漂亮的

    免费分享一套PyQt6学生信息管理系统 Python管理系统 Python源码,挺漂亮的

    大家好,我是java1234_小锋老师,看到一个不错的PyQt6学生信息管理系统 Python管理系统 Python源码,分享下哈。 【免费】PyQt5 学生信息管理系统 Python管理系统 Python源码 Python毕业设计_哔哩哔哩_bilibili 【免费】PyQt5 学生信息管理系统 Python管理系统 Python源码 Python毕业设计项目来自

    2024年02月03日
    浏览(14)
  • 基于YOLOv8的摔倒行为检测系统(Python源码+Pyqt6界面+数据集)

    基于YOLOv8的摔倒行为检测系统(Python源码+Pyqt6界面+数据集)

    💡💡💡 本文主要内容:通过实战基于YOLOv8的摔倒行为检测算法,从数据集制作到模型训练,最后设计成为检测UI界面 人体行为分析AI算法,是一种利用人工智能技术对人体行为进行检测、跟踪和分析的方法。通过计算机视觉、深度学习和模式识别等技术,可以实现对人体姿态

    2024年01月25日
    浏览(11)
  • [Python] pyqt6+opencv实现摄像头图像的实时读取并显示(完整源代码)

    [Python] pyqt6+opencv实现摄像头图像的实时读取并显示(完整源代码)

    本文将会介绍如何通过opencv来实时捕获摄像头的图像,并通过pyqt6进行图像视频呈现。 1. 通过opencv的VideoCapture类读取摄像头的每一帧图像,通过pyqt6的QLabel来显示图像 2. 根据获取的图像的宽和高大小以及QLabel的大小来动态调整最后输出的图像的宽和高 3. 调整窗体大小,动态调

    2024年01月24日
    浏览(65)
  • 基于YOLOv8的PCB缺陷检测系统(Python源码+Pyqt6界面+数据集)

    基于YOLOv8的PCB缺陷检测系统(Python源码+Pyqt6界面+数据集)

    💡💡💡 本文摘要:基于YOLOv8的PCB缺陷检测系统,并阐述了整个数据制作和训练可视化过程, 最后通过Pyside UI界面进行展示。 博主简介 AI小怪兽,YOLO骨灰级玩家,1)YOLOv5、v7、v8优化创新,轻松涨点和模型轻量化;2)目标检测、语义分割、OCR、分类等技术孵化,赋能智能制

    2024年04月10日
    浏览(11)
  • Python开发GUI常用库PyQt6和PySide6介绍之三:交互和通信方式讲解

    在PyQt6和PySide6中,事件(Event)和信号(Signal)是两个不同的概念,它们都是Qt框架中用于处理不同类型的应用程序响应机制。简言之,事件是对用户交互或系统状态变化的直接响应,而信号和槽是一种允许对象间通信的机制。在PyQt6和PySide6的应用程序中,合理地使用事件和信

    2024年02月04日
    浏览(10)
  • python socket编程7 - 使用PyQt6 开发UI界面新增实现UDP server和client单机通讯的例子

    python socket编程7 - 使用PyQt6 开发UI界面新增实现UDP server和client单机通讯的例子

    在第五篇中,简单实现了命令行下的 TCP/UDP server和client的单机通讯。 在第六篇中,实现了PyQt6开发界面,TCP协议实现的单机server和client的通讯功能。 这一篇,在第六篇的基础上,增加了UDP server和client的单机通讯功能。 1、UDP Server 界面实现服务配置和数据提供 2、UDP Server封装

    2024年02月19日
    浏览(17)
  • 【PyQT5】安装之后,PyUIC没有成功转换ui文件转为py且出现错误:`Process finished with exit code 1`的解决方法

    【PyQT5】安装之后,PyUIC没有成功转换ui文件转为py且出现错误:`Process finished with exit code 1`的解决方法

    关于PyQT5的安装,可参考我前一篇博客里面【PyQT5】结合PyQt5-tools中的QT Designer进行界面设计,使用pyinstaller转换成可执行程序的重点参考博客PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程 之前跟着这篇重点参考的博客配置下来是没有任何问题的,也能够成功调用

    2024年01月19日
    浏览(47)
  • PyQT5和PyQt6的区别

    PyQt6和PyQt5是两个版本的PyQt框架,具有以下区别: 1.PyQt6是PyQt的最新版本,而PyQt5是较旧的版本。PyQt6提供了更多的功能和改进,以提供更好的用户体验和开发体验。 2.PyQt6支持Python 3.10及更高版本,而PyQt5支持Python 3.5到3.9版本。 3.PyQt6对底层Qt库的版本要求更高,支持Qt 6及更高

    2024年02月07日
    浏览(7)
  • PyQt6 和 PyQt5 的差异

    PyQt6 和 PyQt5 的差异

    PyQt6 是 PyQt5 的下一个版本,但两个版本的写法基本上其实大同小异,这篇教学会介绍 PyQt6 和 PyQt5 有何差异。 快速预览: .exec_() 改为 .exec() 方法的位置或名称改变 不需要高 DPI 缩放属性 支援 Qt的资源 特定平台 其他细节差异 PyQt6 教学 - PyQt6 和 PyQt5 的差异 在 Python 2.7

    2024年02月15日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包