PyQt5中的QtDesigner窗口

文章目录

    • 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()来设置窗口样式,默认的是如下的样式

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PyCharm 集成 Git

目录 1、配置 Git 忽略文件 2、定位Git 3、使用pycharm本地提交 3.1、初始化本地库 3.2、添加到暂存区 3.3、提交到本地库 3.4、切换版本 4、分支操作 4.1、创建分支 4.2、切换分支 4.3、合并分支 5、解决冲突 1、配置 Git 忽略文件 作用:与项目的实际…

conan2 基础入门(04)-指定编译器(gcc为例)

conan2 基础入门(04)-指定编译器(gcc为例) 文章目录 conan2 基础入门(04)-指定编译器(gcc为例)⭐准备生成profile文件预备文件和Code ⭐使用指令预览正确执行结果可能出现的问题 ⭐具体讲解conancmake ENDsettings.yml ⭐准备 生成profile文件 # 生成默认profile文件&#xf…

【userfaultfd+条件竞争劫持modprobe_path】TSGCTF 2021 -- lkgit

前言 入门题,单纯就是完成每日一道 kernel pwn 的 kpi 😀 题目分析 内核版本:v5.10.25,可以使用 userfaultfd,不存在 cg 隔离开启了 smap/smep/kaslr/kpti 保护开启了 SLAB_HADNERN/RANDOM 保护 题目给了源码&…

使用IDA自带python patch的一道例题

首先看见就是迷宫 迷宫解出的路径,放在zip的文件可以得到一个硬编码 然后在原程序中,有一处很离谱 这个debugbreak就是IDA分析错误导致的 我们点进去发现里面全是nop 然后我们把我们得到的硬编码放在010里面,再用IDA打开 重新编译看汇编 你…

Python---Numpy万字总结(2)

NumPy的应用(2) 数组对象的方法 获取描述统计信息 描述统计信息主要包括数据的集中趋势、离散程度和频数分析等,其中集中趋势主要看均值和中位数,离散程度可以看极值、方差、标准差等 array1 np.random.randint(1, 100, 10) …

音视频--AAC编码解析和示例

目录 1:AAC编码介绍 2:AAC格式介绍 3:AAC -ADTS帧组成 4:AAC-ADTS:(adts_fixed_header)格式介绍 5:AAC-ADTS:(adts_variable_header)格式介绍…

符合Misra C++标准且支持mmap的内存池管理模块

概述 定义内存管理的相关行为。使用了预分配的管理,先分配一块足够大的内存,然后需要时再从这块内存中进行分配。 代码仓库:https://gitee.com/liudegui/mem_pool 类之间的关系 模块名功能MemPool内存池模块入口,提供常用的模块…

HDFS- DataNode磁盘扩缩容

HDFS- DataNode磁盘扩缩容 背景: 缩减/增加节点磁盘 方案介绍: 采用hdfs dfsadmin -reconfig 动态刷新配置实现,不停服扩缩容。 注意事项: 请在进行缩容之前,务必了解实际的数据量,并确保磁盘有足够的空间来容纳这些数据。还需要考虑未来的使用需求,要预留一定数量的空间…

面向电商家居行业3D室内场景合成中的空间感知

本文主要介绍了3D场景合成技术在电商领域,尤其是家居家装行业的应用。它解释了如何使用3D场景合成创建逼真的室内设计,让消费者能够交互式地查看和体验产品,提高购物的趣味性和效率。文章提到了两种主要的3D室内场景生成算法:传统…

Curator分布式锁

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 分布式锁服务宕机,…

RZ9692实训开发通信系统构建(含配置json配置文件)

实验名称 通信系统的构建 实验目的: 实现一个通信系统的构建,要求传输两路正弦波,和一路视频信号,要求在接受端完整接受正弦信号和视频信号。 一、实验原理: 数字通信系统的一般模型: 数字通信系统的一…

验证搜索二叉树

目录 题目 方法一 思路 优化 方法二 思维误区 递归关系推导 代码实现 题目 98. 验证二叉搜索树 难度:中等 给你一个二叉树的根节点root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含…

Python 开发 框架安全:Django SQL注入漏洞测试.(CVE-2021-35042)

什么是 Django 框架 Django 是一个用 Python 编写的 Web 应用程序框架。它提供了许多工具和库,使得开发 Web 应用程序变得更加容易和高效。Django 遵循了“MTV”(模型-模板-视图)的设计模式,将应用程序的不同组件分离开来&#x…

QT的C++版本是如何从ui文件编译成C++可以使用的.h文件的

Desktop_Qt_6_7_0_MinGW_64_bit是一个编译器,可以将ui文件编译为.h文件。我们可以在项目文件下看到这一样一个文件: 这里的ui_mainwindow.h文件我们可以打开看一下:你会发现你所有的ui设计都被记录在了这里。 /***************************…

最新网页版USB转串口芯片CH340中文规格书手册(20240511)

前言 南京沁恒的产品已经很成熟了,完全可替代国外USB转串口产品,不必迷信FT232,CP2102之类了。 另外,急着买芯片,直接跑过去的,看过几次妹子了:) CH340手册,基于网页3.3版本,规格书…

作为一名新能源汽车热管理仿真工程师需要具备哪些素养与技能

作为一名新能源汽车热管理仿真工程师,需要具备多方面的素养与技能,才能胜任这一岗位的工作。从工程素养到技术技能,再到沟通能力和团队合作,以下是对这些方面的探讨。 理论知识基础 首先,工程素养是新能源汽车热管理仿…

现代制造之数控机床篇

现代制造 有现代技术支撑的制造业,即无论是制造还是服务行业,添了现代两个字不过是因为有了现代科学技术的支撑,如发达的通信方式,不断发展的互联网,信息化程度加强了,因此可以为这两个行业增加了不少优势…

Spring-Cloud-OpenFeign源码解析-01-OpenFeign简介

OpenFeign简介 OpenFeign是一种声明式、模板化的HTTP客户端(仅在Application Client中使用)。声明式调用是指,就像调用本地方法一样调用远程方法,无需感知操作远程http请求。 OpenFeign和Feign的区别 Feign是Spring Cloud组件中一个轻量级RESTful的HT…

[算法][差分][延迟相差][leetcode]2960. 统计已测试设备

题目地址: https://leetcode.cn/problems/count-tested-devices-after-test-operations/description/ 解法一:暴力解法 class Solution {public int countTestedDevices(int[] batteryPercentages) {//特殊条件判断if(null batteryPercentages || ba…

图论(洛谷刷题)

目录 前言: 题单: P3386 【模板】二分图最大匹配 P1525 [NOIP2010 提高组] 关押罪犯 P3385 【模板】负环 P3371 【模板】单源最短路径(弱化版) SPFA写法 Dij写法: P3385 【模板】负环 P5960 【模板】差分约束…