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

目录

一、 第一个Qt窗口

二、PyQt模块简介

三、窗口标题和气泡

setWindowTitle

resize

setToolTip

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

setPixmap

setWindowIcon

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

五、标签QLabel显示文字

setText 

QFont 

setPointSize 

setFont 

setStyleSheet 

move 


一、 第一个Qt窗口

代码实现:

import sysfrom 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 sysfrom 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 sysfrom 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 sysfrom 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.mzph.cn/bicheng/4499.shtml

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

相关文章

Redis - Set 集合

目录 前言 命令 SADD 将一个或者多个元素添加到 set 中 语法 SMEMBERS 获取一个 set 中的所有元素 语法 SISMEMBER 判断⼀个元素在不在 set 中 语法 SCARD 获取 set 中的元素个数 语法 SPOP 从 set 中随机删除并返回⼀个或者多个元素 语法 SMOME 将⼀个元素从源 se…

Python 单例类中设置和获取属性的问题及解决方案

1、问题背景 在编写 Python 代码时,有时需要创建一个单例类,这样就可以在程序中使用该类的唯一实例。为了实现这一点,可以定义一个类,并在其 __new__ 方法中检查该类的实例是否已经存在。如果实例存在,则返回该实例&a…

Rancher-Longhorn-新增磁盘以及卷创建原理和卷副本调度规则

一、添加磁盘-官网指引 重点在于: 1、比如你新增了一块盘,你需要做一下事情: 1、执行 lsblk 能找到你的盘。 2、然后执行 fdisk /dev/sdxx 分区你的盘。 3、然后对于分区部署文件系统, mkfs.xfs 4、然后执行 mount /dev/sdxxx 你…

Redis入门到通关之数据结构解析-SkipList

文章目录 ☃️概述☃️总结 欢迎来到 请回答1024 的博客 🍓🍓🍓欢迎来到 请回答1024的博客 关于博主: 我是 请回答1024,一个追求数学与计算的边界、时间与空间的平衡,0与1的延伸的后端开发者。 博客特色&…

--菱形继承--

#include<iostream> using namespace std;class Animal { public:Animal(){m_Age 0;}int m_Age; };//利用虚继承 解决菱形继承的问题 //继承之前 加上关键字 virtual 变为虚继承 // Animal类称为 虚基类 //羊类 class Sheep:virtual public Animal { public:};//驼类 cl…

基于springboot实现的汽车租赁系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

Markdown编辑器的使用

欢迎使用Markdown编辑器 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章&#xff0c;了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#x…

一文搞懂 One-Hot Encoding(独热编码)

文章目录 前言 1、独热编码的原理 2、独热编码的分类 3、独热编码的应用 前言 本文将从独热编码的原理、独热编码的分类、独热编码的应用三个方面&#xff0c;来展开介绍独热编码 One-Hot Encoding。 1、独热编码的原理 特征数字化&#xff1a;将分类变量&#xff08;或称为离…

对MAE的解析

一、背景 Masked Autoencoders&#xff08;掩膜自编码器&#xff09;在NLP领域大放异彩&#xff0c;它是去噪自编码器[1]的一种具体实现方式&#xff0c;然而其在视觉领域的研究进展却有所滞后。作者指出了视觉和NLP两个领域中掩膜自编码器的差异&#xff1a; 架构差异&#xf…

【智能算法】成吉思汗鲨鱼优化算法(GKSO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2023年&#xff0c;G Hu等人受到成吉思汗鲨鱼&#xff08;GKS&#xff09;捕食和生存行为启发&#xff0c;提出了成吉思汗鲨鱼优化算法&#xff08;Genghis Khan Shark Optimizer, GKSO&#xff09;…

Vue开发者工具Vue.js devtools Vue开发者工具安装步骤前端开发工具免费附带教程

下载地址&#xff1a; 链接: https://pan.baidu.com/s/1JaGvhS4NoD8lL07n2ScE9A 密码: 9rfs 安装步骤&#xff1a; 以谷歌浏览器为例 第一步&#xff1a;打开Chrome的拓展程序 如图 第二步&#xff1a; 将下载好的拓展程序拖入即可&#xff0c;如下图 第三步&#xff1a;…

现代永磁同步电机控制原理pdf及全套matlab仿真模型

现代永磁同步电机控制原理pdf及matlab仿真模型。全书包含SVPWM, DTC, Lun, smo, EKF, HFI等经典控制算法。将书中10章节涉及到的模型复原搭建模型。 模型获取链接&#xff1a;现代永磁同步电机控制原理pdf及全套matlab仿真模型

TCP-模拟BS架构通信

简介 bs是通过浏览器进行访问的每次访问都会开启一个短期的socket用来访问服务器的资源 响应报文的格式 服务端 bs架构中的b是浏览器&#xff0c;不需要我们书写&#xff0c;我们只需要书写服务端即可 服务端 public class Server {public static void main(String[] args) {S…

【Docker】docker部署lnmp和wordpress网站

环境准备 docker&#xff1a;192.168.67.30 虚拟机&#xff1a;4核4G systemctl stop firewalld systemctl disable firewalld setenforce 0 安装docker #安装依赖包 yum -y install yum-utils device-mapper-persistent-data lvm2 #设置阿里云镜像 yum-config-manager --add…

C++各种排序算法详解及示例源码

1、排序算法 排序算法&#xff08;sorting algorithm&#xff09;用于对一组数据按照特定顺序进行排列。排序算法有着广泛的应用&#xff0c;因为有序数据通常能够被更高效地查找、分析和处理。 1.1 评价维度 运行效率&#xff1a;我们期望排序算法的时间复杂度尽量低&#xf…

力扣数据库题库学习(4.25日)

1484. 按日期分组销售产品 问题链接 思路与分析 编写解决方案找出每个日期、销售的不同产品的数量及其名称。 每个日期的销售产品名称应按词典序排列。 返回按 sell_date 排序的结果表。我来分析一下&#xff0c;这里的题目要求其实就是统计不同日期下的销售产品数&#xf…

Matlab 使用subplot绘制多个子图,一元拟合

实现效果&#xff1a; clc; clear;filename sri.xlsx; % 确认文件路径data readtable(filename); datavalue data{:,2:end}; datavalue datavalue;fig figure(Position, [0, 0, 1500, 900]); indexString ["(a)","(b)","(c)","(d)&qu…

<计算机网络自顶向下> Internet Protocol(未完成)

互联网中的网络层 IP数据报格式 ver: 四个比特的版本号&#xff08;IPV4 0100, IPV6 0110&#xff09; headlen&#xff1a;head的长度&#xff08;头部长度字段&#xff08;IHL&#xff09;指定了头部的长度&#xff0c;以32位字&#xff08;4字节&#xff09;为单位计算。这…

可替换XC6206P332MR的润石超低功耗LDO RS3221-3.3YF3助力智能门锁设计,精度低至1%

润石科技的RS3221&#xff0c;可满足超低功耗&#xff0c;在智能门锁设计时&#xff0c;兼容替换TOREX的XC6206P332MR&#xff0c;具体请参考图1参数对比&#xff1a; 图1&#xff1a;RS3221-3.3YF3与XC6206P332MR电性能参数对比 通过上表可知&#xff0c; 1、 RS3221-3.3YF3…

家政服务小程序:家政行业的数字化转型

随着大众生活水平的提高&#xff0c;以及老龄化的加速&#xff0c;家政服务已经成为了大众生活中不可或缺的一部分。目前&#xff0c;我国家政服务市场的规模在持续扩大&#xff0c;发展前景一片大好。在日益提升的家政需求下&#xff0c;大众对家政服务的种类也逐渐多样。 为…