PyQt5可视化编程-图形界面开发工具QtDesigner和PyUIC

news2024/9/25 13:26:09

一、概述
Qt库是跨平台的 C++库的集合,是最强大的 GUI库之一,可以实现高级 API来访问桌面和移动系统的各种服务。PyQt5是一套 Python绑定 Digia QT5应用的框架。PyQt5实现了一个 Python模块集,有 620个类,6000个函数和方法。PyQt5的优点:简单好用,功能强大, 跨平台支持,文档齐全,稳定性高,生态支持,开源免费。之前学习了PyQt5库的基本使用,接下来简单学习一下PyQt5图形界面开发工具的使用。
二、PyQt5图形界面开发工具环境配置:
1.安装PyQt5库的指令:pip install pyqt5
2.安装PyQt5图形化界面的指令:pip install pyqt5-tools
3.在 PyCharm添加 QtDesigner和 PyUIC
添加QtDesigner步骤如下:
打开PyCharm -> File Settings -> Tools ->  ExternalTools
然后在右侧点击 '+'会弹出 CreateTool窗口,在窗口中执行一下步骤即可。
(1)Name:填写 'QtDesigner'
(2)Description:'QtDesigner'
(3)Program:填写 designer.exe 的路径,比方说C:\Python\Anaconda3\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
(4)Working director:
填写 '$ProjectFileDir$' 是将 .ui 文件保存在当前 Project的路径下
填写 '$ProjectFileDir$\program' 是将 .ui文件保存在当前 Project路径下的 \program子目录中
(5)点击 'OK'

 
添加PyUIC的步骤与添加QtDesigner类似,不同的是第1步和第3步以及Arguments
Name:填写 'PyUIC'
Program:填写 python.exe 的路径  比方说C:\Python\Anaconda3\python.exe
Arguments:填写"-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py"
三、PyQt5图形界面开发工具的使用
1.使用步骤:
使用 QtDesigner开发 PyQt5图形界面的基本步骤是:
使用图形界面设计工具 QtDesigner进行图形界面设计,生成 .ui文件;
使用 UI转换工具 PyUIC 将 .ui文件转换为 .py文件;
编写一个 Python应用程序调用 .py界面文件,就可以实现 Python平台的 GUI编程。
2.QtDesigner的使用:
2.1.运行 PyCharm,打开建立的 Python Project
2.2.从顶部菜单栏选择:Tools -> ExternalTools -> QtDesigner,弹出如下的 QtDesigner运行窗口

 
2.3.新建窗体:
运行 QtDesigner时会自动弹出 '新建窗体' 对话框,根据自己需要选择窗体,然后点击创建
也可以通过菜单栏选择:'文件 -> 新建'或快捷键 'Ctrl+N'唤起 '新建窗体'对话框,然后根据自己需要选择窗体,然后点击创建
2.4.设计图形界面:
左侧是各种备选的控件对象,右侧上方的 '对象查看器' 显示控件的树状结构,右侧下方的 '属性编辑器'显示控件的各种属性,中间部分用于显示所设计的界面
从左侧选中需要的控件拖到中间的设计界面,然后在右侧的对象查看器、属性编辑器等可以对控件进行更改参数达到自己想要的效果。
完成设计后进行保存,在项目中就有对应的.ui文件。
3.PyUIC的使用:
选中.ui文件,点击鼠标右键唤出下拉菜单,选择:ExternalTools -> PyUIC,点击鼠标左键运行,PyUIC将选中的 .ui文件生成对应的.py文件
四、简单应用实例:
#使用QtDesigner设计界面PyUIC转换得到的demo1.py文档
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(638, 552)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.testButton = QtWidgets.QPushButton(self.centralwidget)
        self.testButton.setGeometry(QtCore.QRect(210, 260, 111, 41))
        self.testButton.setObjectName("testButton")
        self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit.setGeometry(QtCore.QRect(70, 20, 341, 211))
        self.textEdit.setObjectName("textEdit")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 638, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.testButton.setText(_translate("MainWindow", "testButton"))
#python编写的应用程序调用图形界面demo1.py的文档main.py
from PyQt5.QtWidgets import *
import sys
import demo1
if __name__ == '__main__':
    app = QApplication(sys.argv)#创建应用程序对象
    MainWindow = QMainWindow()#创建主窗口
    ui = demo1.Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()#显示主窗口
    sys.exit(app.exec_())#在主线程中退出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Oracle篇】Oracle集群-rac模式

Oracle rac模式 RAC(real application clusters) 整个集群系统又分为 oracle Clusterware (集群就绪软件)和 Real Application(RA) 两大部分组成。 基本架构 rac 是 Oracle 数据库的高可用集群。传统数据库一个实例一个数据库, RAC 是多个实例,一个数…

四、值类型 和 引用类型

文章目录1、值类型 和 引用类型2、栈 和 堆3、特殊的引用类型 string4、通过 Debug调试 验证 string 的特殊1、值类型 和 引用类型 引用类型:string、数组、类 - 堆 值类型:其他的都是值类型 - 栈 2、栈 和 堆 栈空间:系统分配&#xff0…

Bootstrap5 教程

Bootstrap5 教程 Bootstrap 是全球最受欢迎的前端组件库,用于开发响应式布局、移动设备优先的 WEB 项目。 Bootstrap5 目前是 Bootstrap 的最新版本,是一套用于 HTML、CSS 和 JS 开发的开源工具集。它支持 Sass 变量和 mixins、响应式网格系统、大量的预…

HTML+CSS+JS鲜花商城网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Java项目:ssm开发的Java快递代拿系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 使用技术 采用 Spring SpringMVC MyBatisPlus,连接池采用 Druid,安全框架使用 Shiro,前端采用 Bootstrap layer 实…

浅谈推荐系统之内容推荐

推荐系统概念相关 维基百科定义: 推荐系统是一种信息过滤系统,用于预测用户对物品的“评分”或“偏好”。 推荐系统近年来非常流行,应用于各行各业。推荐的对象包括:电影、音乐、新闻、书籍、学术论文、搜索查询、分众分类、以及…

vmware: 磁盘加载问题导致,emergency mode: login incorrect 滚动打印

文章目录问题调试&解释异常日志为什么进入Emergency shell 呢为什么local-fs.target 失败为什么storage.mount 超时服务单元的依赖关系那最后进入emergency mode 为什么会滚Login Incorrect 日志呢plymouthsystemd-sulogin-shellsulogin解决问题 VM虚拟机启动不正常。正常…

[附源码]计算机毕业设计作业查重系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]计算机毕业设计疫情管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

JS高级:Git

目录 集中式版本控制 ​编辑 分布式版本控制 Git 安装 bash-cmd-gui 基本使用 文件状态 git忽略文件 版本回退 远程仓库 gitee 凭证 SSH秘钥 管理远程仓库 开源协议 github git标签 git 分支 master 分支 分支操作 集中式版本控制 分布式版本控制 Git 安装 G…

景联文科技:一文读懂火爆全网的AIGC和背后的数据标注技术!

“在过去的几个月中,AIGC发展速度惊人,DALL-E、Midjourney和Stable Diffusion等技术的快速发展,创作出了许多由AI生成的艺术品。本文中,我们将为您阐述AIGC技术和背后所涉及的数据标注技术。" 今年八月,美国的一位…

计算机网络学习笔记(I)——概述

文章目录第一章—概述1.1、什么是Internet?从具体构成角度:什么是协议?从服务角度:1.2、网络边缘网络结构:网络边缘:网络边缘:采用网络设施的面向连接服务网络边缘:采用基础设施的无…

GIS工具maptalks开发手册(四)01——渲染地图信息框之添加绘制工具、获取点的坐标数据信息框进行展示

GIS工具maptalks开发手册(四)01——渲染地图信息框之添加绘制工具、获取点的坐标数据信息框进行展示 1、官网示例 官网示例-地图信息框——https://maptalks.org/examples/cn/ui-control/ui-map-infownd/#ui-control_ui-map-infownd 效果 代码 index.html <!DOCTYPE ht…

Vue 官方文档2.x教程学习笔记 1 基础 1.3 Vue 实例 1.3.1 创建一个Vue 实例 1.3.2 数据与方法

Vue 官方文档2.x教程学习笔记 文章目录Vue 官方文档2.x教程学习笔记1 基础1.3 Vue 实例1.3.1 创建一个Vue 实例1.3.2 数据与方法1 基础 1.3 Vue 实例 1.3.1 创建一个Vue 实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的&#xff1a; var vm new Vue({/…

阿里云ACP云计算的实验考的是什么?

目前阿里云ACP云计算实验共计四个 1 使用负载均衡实现https与http的混合访问 本实验使用负载均衡配置监听&#xff0c;利用Nginx实现HTTP请求向HTTPS请求的转化&#xff0c;从而完成HTTP和HTTPS的混合访问。 实验概述 互联网巨头雅虎官方对外发布消息&#xff0c;承认在201…

Yolo算法检测之NMS(非极大值抑制)原理详解

刚开始学习算法的时候&#xff0c;nms非极大值一直学不明白&#xff0c;今天终于搞明白了&#xff0c;大致总结一下。 首先我们简单看一下NMS使用的这个背景 按照yolo目标检测算法的初步思想来说&#xff0c;把图片分成19*19网格之后&#xff0c;理论上这个19*19个网格里面包含…

JavaWeb(二)

下面的知识主要就是Servlet&#xff0c;JSP&#xff0c;EL这个顺序去总结&#xff0c;把基础打扎实 Servlet 首先咱们肯定一直听说Servlet&#xff0c;经常说servlet容器&#xff0c;但是具体Servlet是个啥呢。咱们今天就去深入探讨一下。 咱们看一下菜鸟权威教程的解释 Java…

高通平台稳定性分析-CFI failure

一、查看 dmesg_TZ.txt中的错误: Kernel panic - not syncing: CFI failure (target: 0xffffff804323a848) Call trace: dump_backtrace.cfi_jt+0x0/0x8 dump_stack_lvl+0x94/0xe0 panic+0x1a0/0x468 cfi_module_add+0x0/0x24 find_check_fn+0x0/0x258 cam_subdev_ioct…

Kanzi:项目实例:智能灯光SmartControl界面设计

概述&#xff1a; 智能灯光是指&#xff1a;在满足一定条件下&#xff0c;自动显示一些 智能开关&#xff08;如&#xff1a;自动远光灯开关&#xff0c;延时下电开关&#xff0c;智能熄火开关&#xff0c;智能顶灯开关&#xff09;。 他们点亮的共同点是 1&#xff1a;标定…

[附源码]JAVA毕业设计红河旅游信息服务系统(系统+LW)

[附源码]JAVA毕业设计红河旅游信息服务系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…