【Hello,PyQt】最简单的一些pyqt5程序

pyqt5中的常用模块

模块描述
QtWidgets提供了一系列的 UI 组件,如按钮、文本框、窗口等。
QtGui包含了绘图、颜色、字体等图形相关的功能。
QtCore提供了核心的非图形功能,如事件处理、定时器等。
QtNetwork用于网络编程,支持TCP、UDP等协议。
QtSql提供了数据库访问功能,支持多种数据库。
QtMultimedia处理多媒体相关的功能,如音频、视频。
QtPrintSupport提供打印支持的模块。
QtWebEngine用于集成 Web 内容到应用程序中。
QtXml处理 XML 数据的模块。
QtSvg用于处理 SVG 图形的模块。
QtWebSockets提供了 WebSocket 支持。
QtTest用于编写单元测试的模块。
QtDesigner用于创建和编辑 Qt 界面的可视化工具。

第一个窗口

import sys
from PyQt5.QtWidgets import QMainWindow,QApplication,QWidgetclass FirstMainWin(QMainWindow):def __init__(self):super(FirstMainWin,self).__init__()#设置窗口尺寸self.resize(300,300)#设置窗口标题self.setWindowTitle("第一个pyqt窗口")
if __name__=="__main__":app=QApplication(sys.argv)firstWin=FirstMainWin()firstWin.show()sys.exit(app.exec_())
  • 程序预览
    在这里插入图片描述

QMainWindow用于创建主窗口,QApplication管理应用程序的控制流,而QWidget是所有用户界面对象的基类。
每个 PyQt5 应用都必须创建一个应用对象,即QApplication类的实例,这是任何PyQt5应用程序的起点。firstWin是实例化了的FirstMainWin类,并通过show()方法显示了主窗口。最后,通过sys.exit(app.exec_())进入应用程序的主事件循环,确保在用户关闭窗口时应用程序能够干净地退出。

窗口居中

mport sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QDesktopWidget
class CenterWindow(QMainWindow):def __init__(self):super(CenterWindow, self).__init__()# 设置窗口尺寸self.resize(300, 300)# 设置窗口标题self.setWindowTitle("窗口居中")# 窗口居中def center(self):# 获取屏幕坐标screen = QDesktopWidget().screenGeometry()# 获取窗口坐标size = self.geometry()newLeft = (screen.width() - size.width()) / 2newTop = (screen.height() - size.height()) / 2self.move(newLeft, newTop)if __name__ == "__main__":app = QApplication(sys.argv)firstWin = CenterWindow()firstWin.show()firstWin.center()sys.exit(app.exec_())

关闭窗口

关闭一个窗口最直接的方式就是点击标题栏的那个叉,这个例子展示的是通过点击一个按钮关闭窗口,这会提前接触到一下信号和槽的知识。

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QDesktopWidget
from PyQt5.QtWidgets import QPushButtonclass CloseWindow(QMainWindow):def __init__(self):super(CloseWindow, self).__init__()# 设置窗口尺寸self.resize(300, 300)# 添加buttonself.button = QPushButton("退出应用程序",self)# 关联信号和槽self.button.clicked.connect(self.onClick_Button)def onClick_Button(self):sender = self.sender()print(sender.text() + "按钮按下")app = QApplication.instance()app.quit()if __name__ == "__main__":app = QApplication(sys.argv)Win = CloseWindow()Win.show()sys.exit(app.exec_())
  • 程序预览
    在这里插入图片描述

创建按钮使用了QPushButton(string text, QWidget parent = None)函数,第一个参数text是按钮上显示的文字,第二个参数指明按钮放在那个组件上
self.button.clicked.connect(self.onClick_Button) 这一行代码建立了一个信号(Signal)和槽(Slot)的连接。在PyQt中,信号和槽是用于处理事件和响应的机制。

简单介绍一下信号和槽

  • 信号(Signal): 是一个对象发出的事件,比如按钮被点击、文本框内容改变等。在这里,clicked 是QPushButton类的一个信号,按钮被点击时发出。
  • 槽(Slot): 是一个接收信号的方法,用于处理信号触发的事件。在这里,self.onClick_Button 是一个槽,是在按钮被点击发出clicked信号后要执行的方法。

通过使用 connect 方法,告诉 程序当按钮的 clicked 信号被触发时,调用 self.onClick_Button方法。
onClick_Button 方法被调用时,它获取了发出信号的对象(通过self.sender()获取),打印出按钮的文本,并通过 QApplication.instance().quit() 退出应用程序。QApplication.instance()
是 PyQt 中的一个静态方法,它返回当前运行的应用程序的唯一实例序。

消息盒子

QMessageBox 通常用于向用户提供一些信息、询问确认或警告等。它是基于 QDialog 类的一种简便的实现,提供了几种预定义的对话框类型。使用时要从PyQt5.QtWidgets中导入QMessageBox模块

下面是一些常见的 QMessageBox

  • 信息框 (Information Box):
# 显示信息框
QMessageBox.information(None, '标题', '这是一条信息')
  • 警告框 (Warning Box):
# 显示警告框
QMessageBox.warning(None, '标题', '这是一条警告')
  • 错误框 (Error Box):
# 显示错误框
QMessageBox.critical(None, '标题', '发生了错误')
  • 提问框 (Question Box):
# 显示提问框
result = QMessageBox.question(None, '标题', '确定要执行吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if result == QMessageBox.Yes:print('用户选择了确定')
else:print('用户选择了取消')
import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplicationclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setGeometry(300, 300, 250, 150)self.setWindowTitle('消息盒子')self.show()def closeEvent(self, event):reply = QMessageBox.question(self, 'Message',"确定要退出吗?", QMessageBox.Yes |QMessageBox.No, QMessageBox.No)if reply == QMessageBox.Yes:event.accept()else:event.ignore()if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())
  • 程序预览
    在这里插入图片描述

创建提示框

创建提示框需要导入QToolTip和QFont模块
QToolTip 用于显示工具提示信息,提供用户鼠标悬停在组件上时的额外信息,通过使用setToolTip即可为组件设置提示信息,这里导入QFont模块是为了给提示框中的文字设置字体。

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget,  QPushButton, QToolTip
from PyQt5.QtGui import QFontclass TooltipWin(QMainWindow):def __init__(self):super(TooltipWin, self).__init__()self.initUI()def initUI(self):QToolTip.setFont(QFont('楷体', 12))self.setToolTip('我是一个窗口')# 设置窗口位置和尺寸self.setGeometry(300, 300, 640, 480)# 设置窗口标题self.setWindowTitle("ToolTip")self.btn=QPushButton('button',self)self.btn.setToolTip('我是一个按钮')if __name__ == "__main__":app = QApplication(sys.argv)firstWin = TooltipWin()firstWin.show()sys.exit(app.exec_())
  • 程序预览
    在这里插入图片描述

    在这里插入图片描述

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

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

相关文章

一图看懂Redis持久化机制!

持久化策略 Redis 提供了两种持久化策略: RDB (Redis Database Snapshot) 持久化机制,会在一段时间内生成指定时间点的数据集快照(snapshot) AOF(Append Only File) 持久化机制,记录 server 端收到的每一条写命令&am…

YOLO算法改进Backbone系列之:FocalNet

摘要:本文提出焦调制网络(FocalNets),其中自注意(SA)完全被焦调制模块取代,用于建模视觉中的令牌交互。焦点调制包括三个组成部分:(1)焦点上下文化,使用深度卷积层堆栈实现,从短范围…

Python实现ETS指标平滑模型(ETSModel算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 ETS模型(Error-Trend-Seasonality Model),是一种广泛应用于时间序列…

哈希表|242.有效的字母异位词

力扣题目链接 bool isAnagram(char* s, char* t) {int len_s strlen(s), len_t strlen(t);if(len_s ! len_t) {return false;}int table[26];memset(table, 0, sizeof(table));for(int i 0; i < len_s; i) {table[s[i] - a];}for(int i 0; i < len_t; i) {table[t[i…

什么是ElasticSearch的深度分页问题?如何解决?

在ElasticSearch中进行分页查询通常使用from和size参数。当我们对ElasticSearch发起一个带有分页参数的查询(如使用from和size参数)时,ElasticSearch需要遍历所以匹配的文档直到达到指定的起始点(from),然后返回从这一点开始的size个文档 在这个例子中: 1.from 参数定义…

[100个Linux常用指令]-吐血推荐,收藏关注

ls - 列出目录cd - 切换目录pwd - 打印工作目录mkdir - 创建目录rmdir - 删除目录touch - 创建空文件rm - 删除文件cp - 复制文件或目录mv - 移动或重命名文件或目录cat - 连接文件并打印到标准输出设备上more - 分页显示文件内容less - 类似于 more&#xff0c;但支持文件内容…

面向对象的编程语言是什么意思?——跟老吕学Python编程

面向对象的编程语言是什么意思&#xff1f;——跟老吕学Python编程 面向对象是什么意思&#xff1f;面向对象的定义面向对象的早期发展面向对象的背景1.审视问题域的视角2.抽象级别3.封装体4.可重用性 面向对象的特征面向对象的开发方法面向对象程序设计基本思想实现 面向对象的…

R语言读取大型NetCDF文件

失踪人口回归&#xff0c;本篇来介绍下R语言读取大型NetCDF文件的一些实践。 1 NetCDF数据简介 先给一段Wiki上关于NetCDF的定义。 NetCDF (Network Common Data Form) is a set of software libraries and self-describing, machine-independent data formats that support…

sql-mysql可视化工具Workbench导入sql文件

mysql可视化工具Workbench导入sql文件 1、打开workbench2、导入sql文件3、第一行加上库名4、开始运行 1、打开workbench 2、导入sql文件 3、第一行加上库名 4、开始运行

for、while、do While、for in、forEach、map、reduce、every、some、filter的使用

for、while、do While、for in、forEach、map、reduce、every、some、filter的使用 for let arr [2, 4, 6, 56, 7, 88];//for for (let i 0; i < arr.length; i) {console.log(i : arr[i]) //0:2 1:4 2:6 3:56 4:7 5:88 }普通的for循环可以用数组的索引来访问或者修改…

【Prometheus】DataModel

数据模型 DataModel 指标 Metric metric 包含 metric name 和 metric label 格式&#xff1a; <metric name>{<label name><label value>, ...}例如&#xff1a;服务器 HTTP 接口 /messages 的总请求数 api_http_requests_total{method"POST",…

Vue3 快速上手从0到1,两小时学会【附源码】

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 以下内容为vue3的学习笔记 项目需要使用到的依赖 npm install axios npm install nanoid vue-router npm install pinia npm install mitt 源码&#xff1a;Gitee 运行 npm install npm run dev需要运…