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

目录

一、 第一个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.mfbz.cn/a/581000.html

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

相关文章

ios 打印选择纸张

问题描述: 手机App开发中的打印功能,在android中可以选择打印的纸张是A4 A5 等,但是在ios系统中不能选择纸张,一般情况下会只有一个纸类型。 原因解释: 因为在打印机的配置页中可以设置打印机的当前纸张大小&#xff…

sql今天学习总结

排序order by(默认升序) order by id desc(降序排序) order by id,number(先按id排再按name排序) in,not in and or 通配符 where name like "Aa%";选取所有以Aa开头的名字 like "%r" 以r结…

从关键新闻和最新技术看AI行业发展(2024.2.12-2.25第十七期) |【WeThinkIn老实人报】

写在前面 【WeThinkIn老实人报】旨在整理&挖掘AI行业的关键新闻和最新技术,同时Rocky会对这些关键信息进行解读,力求让读者们能从容跟随AI科技潮流。也欢迎大家提出宝贵的优化建议,一起交流学习💪 欢迎大家关注Rocky的公众号&…

C语言-atoi和atof函数的使用

人生应该树立目标,否则你的精力会白白浪费。💓💓💓 目录 •🌙知识回顾 🍋知识点一:atoi函数的使用和实现 • 🌰1.函数介绍 • 🌰2.代码演示 • 🌰3.atoi函数的…

LeetCode78:子集

题目描述 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的 子集 &#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 代码 class Solution { public:vector<vector<int>> res;vector<…

DAM与开源AI名片B2B2C商城系统深度融合,引领企业数字化升级

在数字化浪潮的推动下&#xff0c;内容科技日益成为企业营销战略中的核心力量。DAM&#xff08;数字资产管理&#xff09;以其卓越的内容管理能力&#xff0c;引领企业进入数字资产高效管理与利用的新时代。与此同时&#xff0c;开源AI名片B2B2C商城系统也以其强大的功能和创新…

【Linux】进程的控制①之进程创建与进程退出

一 、进程的创建 1、fork函数 fork函数功能&#xff1a;从已经存在的进程中创建一个新进程。新进程为子进程&#xff0c;原进程为父进程。 fork函数创建进程过后&#xff0c;父子进程代码和数据是共享的。在前面也讲过。 2.函数的返回值 如果进程创建成功&#xff0c;给父进…

PCB设计:差分线

1、差分线的定义 差分线是两条平行的、等长的走线,传输相位差180度的同一个信号,是一根传输“+信号”,一根传输“-信号”。两个信号相减得到2倍强度的有用信号。而两根信号线上的干扰信号相减之后也就没了。 2、差分线的优势 差分信号和普通的单端信号走线相比,最明显的优…

ftp: connect :连接被拒绝(win10)

目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 使用命令测试显示&#xff1a;“FTP拒绝连接” 二、原因分析 第一时间查看ftp服务启动了没哟&#xff0c;相关服务有2个&#xff0c;一个是【Microsoft FTP Service】一个是【IIS 管理服务】&#xf…

为什么堆排序的时间复杂度是O(N*logN)?

目录 前言&#xff1a; 堆排序&#xff08;以排升序为例&#xff09; 步骤&#xff08;用大根堆&#xff0c;倒这排&#xff0c;排升序&#xff09;&#xff1a; 1.先把要排列的数组建立成大根堆 2.堆顶元素&#xff08;82&#xff09;和最后一个元素交换&#xff08;2&…

【详细讲解CentOS常用的命令】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

SpringMVC进阶(过滤器解决中文乱码,处理json以及文件上传下载)

文章目录 1.中文乱码处理1.引出问题1.恢复原来取消掉的属性绑定2.启动服务器&#xff0c;引出问题 2.自定义中文乱码过滤器1.MyCharacterFilter.java2.web.xml配置过滤器&#xff08;这个解决乱码的过滤器放到最前面&#xff09;3.结果展示 3.使用Spring过滤器处理&#xff08;…

外面收费999元的虚拟小众产品,0门槛,单号100-300元

近日&#xff0c;我抽出时间参加了一些线下聚会&#xff0c;与互联网行业的朋友们进行了面对面的交流。有时候&#xff0c;独自努力不如与他人分享想法&#xff0c;因为别人的建议可能会让你豁然开朗&#xff0c;解决遇到的难题。在互联网行业中&#xff0c;交流和沟通至关重要…

【WinForm】怎样以管理员身份运行安装程序

当开发的程序需要安装时&#xff0c;有时默认安装会遇到访问被拒绝的问题。为了解决这个问题&#xff0c;需要以管理员身份运行程序。 文章目录 应用程序UAC清单管理员身份 安全调试ClickOne 应用程序 打开项目属性,找到应用程序下的清单, 设置好如下图 UAC清单 再找到项目…

python 调试 c++源码

1. gdb常用调试命令概览和说明 2. 编译c库设置Debug模式 cmake设置debug 在CMake中设置debug模式通常意味着启用调试信息和优化。以下是一个简单的CMakeLists.txt文件示例&#xff0c;展示了如何设置项目以便在Debug模式下构建&#xff1a; cmake_minimum_required(VERSION 3…

深度学习| 注意力机制

注意力机制 为什么需要注意力机制Seq2Seq问题Transfomer Attention注意力机制分类软硬注意力注意力域 为什么需要注意力机制 这个可以从NLP的Seq2Seq问题来慢慢理解。 Seq2Seq问题 Seq2Seq&#xff08;Sequence to Sequence&#xff09;&#xff1a;早期很多模型中&#xff…

Linux逻辑方式合并物理磁盘

在日常生活中&#xff0c;我们总是遇到一个文件太大&#xff0c;以至于我们的两个磁盘都装不下&#xff0c;这时我们就需要将两块物理磁盘逻辑化的连接在一起&#xff0c;把物理磁盘使用逻辑化的方法合并在一起&#xff0c;形成卷组&#xff0c;使得磁盘空间可以公用&#xff1…

Leetcode—1672. 最富有客户的资产总量【简单】

2024每日刷题&#xff08;120&#xff09; Leetcode—1672. 最富有客户的资产总量 实现代码 class Solution { public:int maximumWealth(vector<vector<int>>& accounts) {int ans 0;for(vector<vector<int>>::iterator it accounts.begin();…

西门子PLC常见疑难解答在这都能找到(含PLC无线通讯实例)

问&#xff1a;在WINCC中可以创建多少个消息类型&#xff1f; 答&#xff1a;WINCC中最多可以创建16个消息类型。 问&#xff1a;博途WINCC与经典版WINCC兼容嘛&#xff1f; 答&#xff1a;经典wincc和博图wincc Professional版本都不兼容 不能安装到一起的哦&#xff01; …

探讨mfc100u.dll丢失的解决方法,修复mfc100u.dll有效方法解析

mfc100u.dll丢失是一个比较常见的情况&#xff0c;由于你电脑的各种操作&#xff0c;是有可能引起dll文件的缺失的&#xff0c;而mfc100u.dll就是其中的一个重要的dll文件&#xff0c;它的确实严重的话是会导致程序打不开&#xff0c;系统错误的。今天我们就来给大家科普一下mf…