上位机开发PyQt5(一)【创建窗口、窗口标题、气泡、显示图片和图标、显示文字】

news2024/12/27 19:30:55

目录

一、 第一个Qt窗口

二、PyQt模块简介

三、窗口标题和气泡

setWindowTitle

resize

setToolTip

四、标签QLabel显示图片和图标

setPixmap

setWindowIcon

resize(label.pixmap().size())

五、标签QLabel显示文字

setText 

QFont 

setPointSize 

setFont 

setStyleSheet 

move 


一、 第一个Qt窗口

代码实现:

import sys

from PyQt5.QtWidgets import *

# 创建QApplication对象
app = QApplication(sys.argv)

# 创建QWidget对象  窗口
w = QWidget()

# 设置窗口标题
w.setWindowTitle("PyQt App")


# 显示窗口
w.show()

# 进入事件循环
sys.exit(app.exec_())

运行结果:

二、PyQt模块简介

PyQt中有非常多的功能模块,开发中最常用的功能模块主要有三个:

  • QtCore:包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用
  • QtGui:包含了窗口系统、事件处理、2D图像、基本绘画、字体和文字类
  • QtWidgets:包含了一些列创建桌面应用的UI元素

PyQt其他模块:

  • QtMultimedia:负责处理多媒体的内容和调用摄像头
  • QtBluetooth:负责查找和连接蓝牙
  • QtNetwork:负责网络编程
  • QtPositioning:负责定位相关
  • Enginio:包含了通过客户端进入和管理Qt Cloud
  • QtWebSockets:实现了WebSocket协议
  • QtWebKit:包含了一个基WebKit2的web浏览器QtWebKitWidgets:包含了基于QtWidgets的WebKit1的类
  • QtXml:负责处理xm
  • QtSvg:负责显示SVG内容
  • QtSql:提供了处理数据库的工具。
  • QtTest:提供了测试PyQt5应用的工具

三、窗口标题和气泡

示例代码:

import sys

from PyQt5.QtWidgets import *

app = QApplication(sys.argv)

w = QWidget()

# 设置标题
w.setWindowTitle("Hello World")

# 设置窗口大小
w.resize(640,480)

# 设置气泡提示
w.setToolTip("这是一个QT窗口")

# 展示
w.show()

# 退出程序
sys.exit(app.exec_())

运行结果:

说明:

setWindowTitle

setWindowTitle 是 QWidget(以及它的子类,如 QMainWindowQDialog 等)的一个方法,用于设置窗口的标题。标题会显示在窗口的顶部栏中,通常包含窗口的名称或描述信息。

resize

resize 方法用于改变窗口的大小。它接受两个参数:窗口的宽度和高度,通常以像素为单位。

setToolTip

setToolTip 方法用于设置窗口的工具提示(或称为气泡提示)。当用户将鼠标悬停在窗口或窗口的某个部分上时,工具提示会显示一小段文本,用于提供有关该窗口或控件的额外信息。

 

四、标签QLabel显示图片和图标

示例代码:

import sys

from PyQt5.QtGui import QPixmap, QIcon
from PyQt5.QtWidgets import *

# 创建QApplication对象
app = QApplication(sys.argv)

# 创建QWidget对象  窗口
w = QWidget()

# 创建QLabel对象
label = QLabel(w)

# 设置图片路径
path = QPixmap('./res/bg.png')

# 设置图片
label.setPixmap(QPixmap(path))

# 设置窗口标题
w.setWindowTitle('贪吃蛇')

# 设置窗口大小和图片大小一致
# w.resize(path.width(), path.height())
w.resize(label.pixmap().size())

# 设置icon
w.setWindowIcon(QIcon('./res/snake_logo.png'))

# 显示窗口
w.show()

# 进入事件循环
sys.exit(app.exec_())

运行结果:

说明:

setPixmap

setPixmap 是 QLabel(或其他可以显示图像的 PyQt 控件)的一个方法,用于设置控件要显示的图像。这个方法接受一个 QPixmap 对象作为参数。

setWindowIcon

setWindowIcon 是 QWidget(以及它的子类)的一个方法,用于设置窗口的图标。这个图标通常显示在窗口的左上角,以及当窗口最小化时显示在任务栏中。

resize(label.pixmap().size())

这行代码调整窗口的大小以匹配标签中图像的大小。label.pixmap() 返回标签当前设置的 QPixmap 对象(如果有的话),而 .size() 方法则返回这个 QPixmap 对象的大小(宽度和高度)。然后,resize 方法根据这个大小来调整窗口的大小。

五、标签QLabel显示文字

示例代码:

import sys

from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import *

# 创建QApplication对象
app = QApplication(sys.argv)

# 创建QWidget对象  窗口
w = QWidget()

# 创建QLabel对象
label = QLabel(w)

# 设置label显示文字
label.setText("Hello World!")

# 设置label显示文字的字体
font = QFont()
font.setPointSize(20)
label.setFont(font)

# 设置label显示文字的颜色
label.setStyleSheet("color:red")

# 设置label显示文字的位置
label.move(100, 100)

# 设置窗口大小
w.resize(400, 300)

# 显示窗口
w.show()

# 进入事件循环
sys.exit(app.exec_())

运行结果:

说明:

setText 

setText方法用于设置 QLabel 控件的文本内容。在这个例子中,它将 label 控件的文本设置为 "Hello World!"。这意味着当控件被渲染时,用户将看到 "Hello World!" 这段文字。

QFont 

QFont是 PyQt 中用于描述字体属性的类。这行代码创建了一个新的 QFont 对象,这个对象将用于后续设置字体样式和属性。

setPointSize 

setPointSize方法用于设置 QFont 对象的点大小,即字体的大小。在这里,字体大小被设置为 20 点。点大小是字体大小的一个度量单位,通常用于描述字体在屏幕或打印输出上的大小。

setFont 

setFont方法用于将之前创建的 QFont 对象应用到 label 控件上。这意味着 label 控件将使用指定的字体样式(包括字体大小、字体类型等)来显示文本。

setStyleSheet 

setStyleSheet方法用于设置控件的样式表。样式表允许开发者使用类似于 CSS 的语法来定义控件的外观。在这个例子中,样式表将 label 控件中文本的颜色设置为红色。这意味着 "Hello World!" 这段文字将以红色显示。

move 

move方法用于移动 QLabel 控件(或任何 QWidget 及其子类)到其父控件或窗口中的指定位置。它接受两个参数:x 坐标和 y 坐标,这两个参数定义了控件左上角相对于其父控件或窗口的位置。在这个例子中,label 控件被移动到 (100, 100) 的位置,这意味着控件的左上角将位于其父控件或窗口的 (100, 100) 坐标处。

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

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

相关文章

Python —— 模块、包

一、模块和包 1. 模块module 模块是 Python 程序架构的一个核心概念。Python中模块就是一个.py文件,模块中可以定义函数,变量,类。模块可以被其他模块引用 1.1. 创建模块文件 创建文件:utils.py # 定义变量 name 张三# 定义函…

【论文阅读】ViTAE:Vision transformer advanced by exploring intrinsic inductive bias

ViTAE:Vision transformer advanced by exploring intrinsic inductive bias 论文地址摘要:简介:3 方法论3.1 重温视觉变压器3.2 ViTAE3.3 缩减单元3.4 Normal cell3.5 模型细节 4 训练4.1 Implementation details4.2 Comparison with the state-of-the-…

选择洗地机需要注意什么?六大选购技巧,亲测有效

这些年,洗地机行业的「卷」,就从来没停过!特别是最近一两年,随随便便升级点啥,都能出个新款!那么,面对种类繁多的洗地机,我们应该怎么去选购呢?今天笔者来给大家讲讲选择…

怎么通过PHP语言实现远程控制棋牌室

怎么通过PHP语言实现远程控制棋牌室呢? 本文描述了使用PHP语言调用HTTP接口,实现控制棋牌室,通过专用的包间控制器,来实现包间内所有电器以及门锁的独立控制。 可选用产品:可根据实际场景需求,选择对应的规…

穷人想要改命,是选择打工还是创业? 2024创业项目小成本!2024轻资产创业!2024风口行业!2024普通人做什么行业赚钱?

今日话题穷人想要改命,是选择打工还是创业? 改命的方式就是跳进水里,忍受呛水,学会游泳,这个过程越年轻实现越好,就像小鹰往山崖下跳,要么学会飞,要么就狠狠的被摔死。打工思维和创…

请编写函数fun,该函数的功能是:实现B=A+A‘,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 请编…

回归预测 | MATLAB实现BO-BP贝叶斯优化BP神经网络多输入单输出回归预测

回归预测 | MATLAB实现BO-BP贝叶斯优化BP神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现BO-BP贝叶斯优化BP神经网络多输入单输出回归预测预测效果基本介绍程序设计参考资料预测效果 基本介绍 回归预测 | MATLAB实现BO-BP贝叶斯优化BP神经网络多输入单输出回归预测 B…

【论文阅读】互连网络的负载平衡路由算法 (GAL, Globally Adaptive Load-balancing 全局自适应负载平衡)

Globally Adaptive Load-balancing 全局自适应负载平衡 GAL: Globally Adaptive Load-balanced routing 全局自适应负载平衡路由 1. GAL on a ring2. GAL on higher dimensional torus3. 实验性能4. 算法稳定性 Stability总结 References Globally Adaptive Load-balancing 全…

node.js + @elastic/elasticsearch 操作elasticsearch数据库

我这边node.js 使用的是 koa2,elasticsearch是8.11.1版本 官网:https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/getting-started-js.html 一、elastic/elasticsearch 连接 elasticsearch数据库 如果elasticsearch没有设…

开发模型???

开发模型??? 一:什么是需求??二:开发模型2.1:软件的生命周期2.1.1:软件生命周期 2.2:常见开发模型2.2.1:瀑布模型2.2.2:螺旋模型2.2.3:增量模型 && 迭代模型 二级目录 一级目录二级目录二级目录二级目录三级目录 一:什么是需求?? 用户需求:通常就是一句话,没有…

网络原理(qq消息发送原理)

1.网络初识 IP地址 概念: IP地址主要⽤于标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。简单说,IP地址⽤于定位主机的⽹络地址。 就像我们发送快递⼀样,需要知道对⽅的收货地址,快递员才能将包裹送到…

时间序列生成数据,TransformerGAN

简介:这个代码可以用于时间序列修复和生成。使用transformer提取单变量或者多变时间窗口的趋势分布情况。然后使用GAN生成分布类似的时间序列。 此外,还实现了基于prompt的数据生成,比如指定生成某个月份的数据、某半个月的数据、某一个星期的…

Git变更账户、查看账户

1、变更账户 (1)修改当前文件夹用户 git config user.name “新用户名” git config user.email “新邮箱” (2)修改全局git用户 git config - -global user.name “新用户名” git config - -global user.email “新邮箱”…

TensorRT模型压缩

参考链接: https://www.jianshu.com/p/805b76c9d229 https://blog.csdn.net/chenhaogu/article/details/132677778 基本理论 TensorRT是一个高性能的深度学习推理优化器,可以为深度学习应用提供低延迟、高吞吐率的部署推理。TensorRT可用于对超大规模数…

(六)几何平均数计算 补充案例 #统计学 #CDA学习打卡

一. 两个案例 1)几何平均数计算:基金年平均增长率计算 在财务、投资和银行业的问题中,几何平均数的应用尤为常见,当你任何时候想确定过去几个连续时期的平均变化率时,都能应用几何平均数。其他通常的应用包括物种总体…

《HCIP-openEuler实验指导手册》1.2Apache主页面配置

知识点 一、配置服务器监听IP及端口 注释主配置文件“监听IP及端口”部分 cd /etc/httpd/conf cp httpd.conf httpd.conf.bak vim httpd.conf可以在普通模式下搜索Listen关键字 :/Listen按n键继续向后搜索 在/etc/httpd/conf.d中新建子配置文件port.conf: tou…

FPGA秋招-笔记整理(3)无符号数、有符号数

参考:Verilog学习笔记——有符号数的乘法和加法 一、无符号数、有符号数 将输入输出全部定义为有符号数 (1)无符号数的读取按照原码进行,有符号数的读取应该按照补码读取,计算规则为去掉符号位后取反、加1在计算数值…

84.柱形图中最大的矩阵

二刷终于能过了. 思路解析: 不愧是hard,第一步就很难想, 对于每一个矩阵,我们要想清楚怎么拿到最大矩阵, 对于每个height[i],我们需要找到left和right,left是i左边第一个小于height[i]的,right是右边第一个小于height[i]的,那么他的最大矩阵就是height[i] * (right-left-…

暗区突围无限测试资格获取教程 暗区突围怎么参加测试教程推荐

《暗区突围:无限》是一款强调极致真实与沉浸感的军事策略游戏,它邀请玩家踏入危机四伏的战场,通过射击、智取与突袭,铺就一条满载财富的道路。在这片未知与挑战并存的土地上,游戏赋予玩家极高的行动自由,旨…