PyQt5中的QtDesigner窗口

news2025/1/13 7:43:21

文章目录

    • 1. 简介
    • 2. QtDesigner的MainWindow
      • 2.1 创建MainWindow
      • 2.2 添加组件
      • 2.3 预览
      • 2.4 查看对应的Python代码
      • 2.5 保存窗口并命名为login.ui,如下所示
      • 2.6对ui文件进行转换得到.py原件
    • 3. 窗口常用属性及说明
      • 3.1 设置对象名称
      • 3.2 改变标题名字
      • 3.3 修改窗口大小
    • 4. 更改窗口的图标
    • 5. 窗口的背景
      • 5.1 用.setStyleSheet在代码里设置
      • 5.2 用QPalette这个类进行更改背景颜色和背景图片
      • 5.3 通过资源浏览器进行设置
    • 6.设置窗口透明度
    • 7.控制窗口样式

1. 简介

Qt Designer 是 PyQt5 中的一款可视化界面设计工具,它允许用户通过拖放部件来设计 GUI 界面,并生成相应的代码。QtDesigner的窗口区域如下所示

在这里插入图片描述

2. QtDesigner的MainWindow

主窗口是 Qt Designer 的主界面,包含了工具栏、菜单栏、状态栏等。你可以在主窗口中打开、保存、关闭界面设计文件,以及预览和测试界面效果。

2.1 创建MainWindow

通过Pycharms我们可以打开QtDesigner, Tools ->External Tools->QtDesigner, 如下,我们可以创建一个MainWindow,

在这里插入图片描述

2.2 添加组件

在这个窗口中,我们可以添加Label和Line edit, Label的文本改为“用户名”,如下所示

在这里插入图片描述

继续添加Label和Line edit, 这个Label改名为密码,并且新增一个Push Button, 改名为登录按钮,这样我们就建立起下面这个界面了。

在这里插入图片描述

2.3 预览

在窗口预览里,我们可以有几种不同风格的预览,如下所示

这里我们直接用ctrl+R预览结果如下,
在这里插入图片描述

2.4 查看对应的Python代码

在这里插入图片描述

结果如下,这些代码是可以直接复制运行的。

在这里插入图片描述

2.5 保存窗口并命名为login.ui,如下所示

在这里插入图片描述

2.6对ui文件进行转换得到.py原件

对login.ui文件用PyUIC转换为对应的.py文件,这个.py文件就会生成在我们同级目录下,如下所示

在这里插入图片描述

打开这个login.py 文件,我们是并不能直接运行得到窗口的,需要提供一个入口,如下所示

在这里插入图片描述

这样我们就可以运行得到如下结果

在这里插入图片描述

上面增加的代码如下

if __name__ == "__main__":
    # 导入 sys 模块,用于处理命令行参数和退出应用程序
    import sys

    # 创建一个 QApplication 实例,这是 PyQt 应用程序的主对象
    app = QtWidgets.QApplication(sys.argv)
    # 创建一个 QMainWindow 实例,这是应用程序的主窗口
    MainWindow = QtWidgets.QMainWindow()
    # 创建一个 Ui_MainWindow 实例,这是用于设计主窗口界面的类
    ui = Ui_MainWindow()
    # 调用 Ui_MainWindow 类中的 setupUi() 方法,将主窗口设置为设计的界面
    ui.setupUi(MainWindow)
    # 显示主窗口
    MainWindow.show()
    # 进入主循环,等待事件的发生,直到应用程序被关闭
    sys.exit(app.exec_())

3. 窗口常用属性及说明

3.1 设置对象名称

可以在属性编辑器里改变objectName的值,如下所示

在这里插入图片描述

也可以将保存后的程序,用PyUIC产生的.py文件里,用.setObjectName()的方法来改名字

在这里插入图片描述

3.2 改变标题名字

在属性里改变windowTitle的值,如下所示

在这里插入图片描述

这里我们改成如下title

在这里插入图片描述

也可以在.py文件中改title,可以用.setWindowTitle()方法,如下所示

在这里插入图片描述

改了title后,再运行有就会有结果(注意:这里.py文件依然要加上login文件里的程序入口,才能运行出结果),如下所示

在这里插入图片描述

这里我也给出修改和增加后的程序

    def retranslateUi(self, test):
        _translate = QtCore.QCoreApplication.translate
        test.setWindowTitle("This is demo")

if __name__ == "__main__":
    # 导入 sys 模块,用于处理命令行参数和退出应用程序
    import sys

    # 创建一个 QApplication 实例,这是 PyQt 应用程序的主对象
    app = QtWidgets.QApplication(sys.argv)
    # 创建一个 QMainWindow 实例,这是应用程序的主窗口
    MainWindow = QtWidgets.QMainWindow()
    # 创建一个 Ui_test 实例,这是用于设计主窗口界面的类
    ui = Ui_test()
    # 调用 Ui_test 类中的 setupUi() 方法,将主窗口设置为设计的界面
    ui.setupUi(MainWindow)
    # 显示主窗口
    MainWindow.show()
    # 进入主循环,等待事件的发生,直到应用程序被关闭
    sys.exit(app.exec_())

3.3 修改窗口大小

修改窗口大小,可以在属性窗口里用geometry属性,在代码里可用resize()方法,如下所示

在这里插入图片描述

在这里插入图片描述

4. 更改窗口的图标

一般创建窗口自带的图标如下所示

在这里插入图片描述

我们可以在属性里更改windowIcon属性,或者在代码里用setWindowIcon()方法更改,如下所示。注:这里图标要根据自己放置图标的路径去选择。

在这里插入图片描述

修改后,预览crtl+R是可以看到修改后的效果的。
代码里更改窗口图标如下

在这里插入图片描述

这里修改Icon的代码如下

# 创建 QIcon 实例
icon = QtGui.QIcon()
# 添加图片到 QIcon 实例中,使用 './favicon.ico' 文件作为图标路径 注:这里图标路径根据自己情况去选
icon.addPixmap(QtGui.QPixmap('./favicon.ico'), QtGui.QIcon.Normal, QtGui.QIcon.Off)
# 将图标设置为窗口的图标
test.setWindowIcon(icon)

然后运行,结果如下

在这里插入图片描述

5. 窗口的背景

5.1 用.setStyleSheet在代码里设置

改变背景颜色可以用如下格式,

在这里插入图片描述

改背景图片可以用如下格式

在这里插入图片描述

注:这里背景图片的路径根据你自己的实际情况指定

5.2 用QPalette这个类进行更改背景颜色和背景图片

改变背景颜色

在这里插入图片描述

注:这里要在开头引入Qt这个类,即

from PyQt5.QtCore import Qt

改变背景图片
在这里插入图片描述

注:这里要在开头引入QBrush, QPixmap类,即

from PyQt5.QtGui import QBrush, QPixmap

我们可以进一步让图片自适配窗口大小

在这里插入图片描述

程序如下:

# 使用scaled()方法将图片缩放到窗口的大小
        palette.setBrush(test.backgroundRole(),
                         QBrush(QPixmap('./cat.jpg').scaled(test.size(),
                        QtCore.Qt.IgnoreAspectRatio, QtCore.Qt.SmoothTransformation)))

5.3 通过资源浏览器进行设置

过程如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这样我们就可以把背景图片加上去了,保存后,可以用PyUIC将.ui转换为.py文件,转换为.py文件后,我们就会多一个.qrc文件,如果不把这个qrc文件转化为.py文件,我们就没法正常运行程序,这里就需要用到Pyrcc,在tools–>external tools–>Pyrcc里对img.qrc文件处理,得到img_rc.py文件。之后我们就可以运行test.py文件了

在这里插入图片描述

在这里插入图片描述

6.设置窗口透明度

在属性里windowOpacity里设置,或者在代码里setWindowOpacity()方法设置

在这里插入图片描述

改为0.5后,预览就变成半透明了,这个值可以在0到1之间修改,0代表完成透明,1代表完全不透明。

在代码里就用一个命令就可以

在这里插入图片描述

7.控制窗口样式

用.setWindowFlags()来设置窗口样式,默认的是如下的样式

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

pdf 版面分析与优化策略

1. 简介 版面分析作为RAG的第一步工作,其效果对于下游工作至关重要。 前常见的 PDF 解析方法包括三种 基于规则:根据 PDF 的组织特征确定每个部分的规则(风格和内容)缺点:不通用(PDF格式不固定&#xf…

DSA理解理解蓝桥杯例题signature

一、历史 1991年8月,NIST(Nation Institute of Standards and Technology,美国国家标准技术研究所)提出了数字签名算法(DSA)用于他们的数字签名标准(DSS)中。 DSA是算法&#xff0c…

C++的数据结构(四):队列

在数据结构中,队列(Queue)是一种特殊的线性表,只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队列中没有元素时,称为空队列。队列的…

python数据分析——matplotlib可视化基础

参考资料:活用pandas库 # 导入库 import pandas as pd import matplotlib.pyplot as plt # 导入数据 anscombepd.read_csv(r"...\seaborn常用数据案例\anscombe.csv") anscombe.head() 大多数基本图表的名字以plt.plot开头。 # 创建数据子集 # 只包含数…

消息中间件Kafka(PHP版本)

小编最近需要用到消息中间件,有需要要复习一下以前的东西,有需要的自取,强调一点,如果真的想了解透彻,一定要动手,脑袋会了不代表就会写了 Kafka是由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅…

py黑帽子学习笔记_环境准备

1 下载os装os 下载一个kali虚机镜像然后用虚机管理软件创虚机,装完如下图,我用的版本是2024.1的版本kali-linux-2024.1-installer-amd64,可以从镜像站下载,官网下的慢还断网Index of /kali-images/kali-2024.1/ | 清华大学开源软…

AI 问答 API 对接说明

我们知道,市面上一些问答 API 的对接还是相对没那么容易的,比如说 OpenAI 的 Chat Completions API,它有一个 messages 字段,如果要完成连续对话,需要我们把所有的上下文历史全部传递,同时还需要处理 Token…

47岁古天乐唯一承认女友约「御用阿妈」过母亲节

日前关宝慧在IG晒出一张聚会照,并写道:「预祝各位#母亲节快乐🌹#dinner #happy #friends #好味」相中所见,前TVB金牌监制潘嘉德、卢宛茵、黄𨥈莹、黎萨达姆都有出席饭局。 当中黄𨥈莹身穿卡其色西装褛&…

【35分钟掌握金融风控策略24】定额策略实战

目录 基于客户风险评级的定额策略 确定托底额度和盖帽额度 确定基础额度 基于客户风险评级确定风险系数 计算最终授信额度 确定授信有效期 基于客户风险评级的定额策略 在开发定额策略时,精准确定客户的基础额度是一个关键步骤,通常会基于客户的收…

整体安全设计

人员和资产的安全是当今许多组织的最高优先事项之一。随着暴力事件在美国各地盛行——枪击事件、袭击、内乱等——建筑物业主必须为其建筑物及其居住者的安全做好计划。 为了创造一个安全的环境,新设施或园区的安全设计必须超越基本的摄像头和访问控制设备&#xf…

纯血鸿蒙APP实战开发——首页下拉进入二楼效果案例

介绍 本示例主要介绍了利用position和onTouch来实现首页下拉进入二楼、二楼上划进入首页的效果场景,利用translate和opacity实现动效的移动和缩放,并将界面沉浸式(全屏)显示。 效果图预览 使用说明 向下滑动首页页面超过触发距…

【Linux】centos7安装软件(rpm、yum、编译安装),补充:查找命令的相关文件路径,yum安装mysql

【Linux】技术上,Linux是内核。而术语上,我们通常说的Linux是完整的操作系统,其实称为"Linux发行版",是将Linux内核和应用系统打包,由不同的发行家族发行了不同版本。Linux发行版众多,主要有RedH…

HCIP-Datacom-ARST自选题库_07_割接【35道题】

一、单选题 1.在割接的测试阶段,符合以下哪一种情况的可以判断为割接成功? 网络承载的上层应用业务测试正常 网络设备的配置查看结果正常 网络流量路径正常 路由协议运行正常 2.在割接的测试阶段中,表明已经完成测试的标准是: IP设备的配置查看结…

org.postgresql.util.PSQLException: 错误: 关系 “dual“ 不存在

springboot 项目连接 postgreps,启动时报错 org.postgresql.util.PSQLException: 错误: 关系 "dual" 不存在。 查阅资料后发现这是由配置文件中的配置 datasource-dynamic-druid-validationQuery 导致的 spring:datasource:druid:stat-view-servlet:ena…

二叉树介绍

引入 定义 区别 定义不同 形态不同 基本形态

Ubuntu18.04解决有线网卡连接问题(不更新内核成功版)

https://www.realtek.com/Download/List?cate_id584 (需要翻一下) 不想自己去下载,直接去我资源里下载我上传的包就好啦(😂😂😂刚刚看了下别人下载要VIP还是自己去网站下很快的) 下载后解压,在…

FreeRTOS二值信号量

目录 一、信号量的概念 1、信号量的基本概念 2、信号量的分类 二、二值信号量简介 三、二值信号量相关API 1、创建二值信号量 2、释放二值信号量 3、获取二值信号量 四、二值信号量实操 1、实验需求 2、CubeMX配置 3、代码实现 一、信号量的概念 1、信号量的基本概…

从零开始的软件测试学习之旅(七)接口测试流程及原则案例

接口测试三要素及案例 接口测试介绍接口预定义接口测试的主要作用测试接口流程如下接口测试三要素接口测试分类RESTful架构风格RESTful架构三要素要素一要素二要素三 RESTful架构风格实现restful架构案例接口测试流程接口测试原则功能测试自动化测性能测试 复习复盘 接口测试介…

MYSQL:MySQL 事务隔离级别详解

一、MySQL事务是什么? MySQL事务是一组在数据库中执行的操作,这些操作要么全部成功执行,要么全部不执行,以确保数据库的完整性和一致性。 事务的 ACID 事务具有四个特征:原子性( Atomicity )、…

COX回归特征筛选

任务:利用cox筛选出P值小于0.05的特征 数据的格式第一列为标签,第二列为时间,第三列及后为特征 先想一想,想好了再更新 这里我们先举一个例子: import pandas as pd from lifelines import CoxPHFitter# 创建示例数…