当前位置: 首页 > news >正文

PyQt6从入门到放弃

PyQt6从入门到放弃

安装PyQt6

pip install PyQt6
# 查看QT和PyQT的版本
from PyQt6.QtCore import QT_VERSION_STR
from PyQt6.QtCore import PYQT_VERSION_STR
print(QT_VERSION_STR)
print(PYQT_VERSION_STR)

PyQt6模块

PyQt6类由一系列模块组成包括QtCore、QtGui、QtWidgets等模块。QtCore模块式非GUI的核心库,用来处理时间、文件、目录、各种类型的数据、流、URLs、mime类型、线程和进程。QtGui有窗口系统集成、事件处理、2D图形、基本图像、字体、文本的类。QtWidgets有创建用户界面的类。QtDBus使用D-Bus处理IPC通讯的类。QtNetwork是网络编程类,QtHelp包含了创建、查看和搜索文档的类。QtXml包含了处理XML文件的类。QtSvg提供了显示SVG的类,QtSql提供了数据库的类,QtTest提供了单元测试的类。

日期和事件

(1)当前日期和时间

from PyQt6.QtCore import QDate, QTime, QDateTime, Qt# currentDate获得当前日期
now = QDate.currentDate()
# 2024-03-19
print(now.toString(Qt.DateFormat.ISODate))
# 19 Mar 2024
print(now.toString(Qt.DateFormat.RFC2822Date))
# currentDateTime获取当前的日期和时间
datetime = QDateTime.currentDateTime()
# Tue Mar 19 23:03:06 2024
print(datetime.toString())
# currentTime获取当前时间
time = QTime.currentTime()
# 23:03:06
print(time.toString(Qt.DateFormat.ISODate))

(2)UTC时间

from PyQt6.QtCore import QDateTime, Qt# 获取本地时间的当前时间
now = QDateTime.currentDateTime()
# 当前时间: 2024-03-23T14:04:45
print('当前时间:', now.toLocalTime().toString(Qt.DateFormat.ISODate))
# 从时间对象中获取标准时间 UTC时间: 2024-03-23T06:04:45Z
print('UTC时间:', now.toUTC().toString(Qt.DateFormat.ISODate))
# 本地时间和标准时间的差异: 28800 seconds
print(f'本地时间和标准时间的差异: {now.offsetFromUtc()} seconds')
# 当前时间: 2024-03-23T14:04:45
print('当前时间:', now.toString(Qt.DateFormat.ISODate))

(3)天数

from PyQt6.QtCore import QDatenow = QDate.currentDate()
d = QDate(2024, 4, 23)
# 2024年4月有30天
print(f'2024年4月有{d.daysInMonth()}天')
# 2024年有366天
print(f'2024年有{d.daysInYear()}天')

(4)天数差

from PyQt6.QtCore import QDate, Qtnow = QDate.currentDate()
y = now.year()
# 今天是2024-03-23
print(f'今天是{now.toString(Qt.DateFormat.ISODate)}')
xmas1 = QDate(y-1, 12, 25)
xmas2 = QDate(y, 12, 25)
dayspassed = xmas1.daysTo(now)
# 从2023-12-25已经过了89天
print(f'从{xmas1.toString(Qt.DateFormat.ISODate)}已经过了{dayspassed}天')
nofdays = now.daysTo(xmas2)
# 距离2024-12-25还剩277天
print(f'距离{xmas2.toString(Qt.DateFormat.ISODate)}还剩{nofdays}天')

(5)时间的计算

from PyQt6.QtCore import QDateTime, Qtnow = QDateTime.currentDateTime()
# 今天是2024-03-23T14:28:07
print(f'今天是{now.toString(Qt.DateFormat.ISODate)}')
# 12天后是2024-04-04T14:28:07
print(f'12天后是{now.addDays(12).toString(Qt.DateFormat.ISODate)}')
# 12天前是2024-03-11T14:28:07
print(f'12天前是{now.addDays(-12).toString(Qt.DateFormat.ISODate)}')
# 50秒后是2024-03-23T14:28:57
print(f'50秒后是{now.addSecs(50).toString(Qt.DateFormat.ISODate)}')
# 3分钟后是2024-06-23T14:28:07
print(f'3分钟后是{now.addMonths(3).toString(Qt.DateFormat.ISODate)}')
# 10年后是2034-03-23T14:28:07
print(f'10年后是{now.addYears(10).toString(Qt.DateFormat.ISODate)}')

PyQt6显示窗口小程序

import sys
from PyQt6.QtWidgets import QApplication, QWidgetdef main():# 每个应用程序都必须创建一个应用程序对象# sys.argv是来自命令行的参数app = QApplication(sys.argv)# QWidget小部件是所有用户界面对象的基类,提供了默认的构造函数w = QWidget()# 改变小部件的尺寸,宽250像素,高150像素w.resize(250, 200)# 小部件移动到屏幕的指定坐标w.move(300, 300)# 设置窗口标题w.setWindowTitle('Simple')# 在屏幕上显示小部件w.show()# 如果调用exit方法或小部件被销毁则主循环结束sys.exit(app.exec())if __name__ == '__main__':main()

气泡提示小程序

import sys
from PyQt6.QtWidgets import (QApplication, QWidget, QToolTip, QPushButton)
from PyQt6.QtGui import QFontclass Bubble(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):QToolTip.setFont(QFont('SansSerif', 10))self.setToolTip('这是一个<b>小部件</b>')btn = QPushButton('QPushButton', self)# 创建气泡提示框btn.setToolTip('这是一个<b>QPushButton</b>小部件')# 给按钮一个系统建议的尺寸btn.resize(btn.sizeHint())btn.move(50, 50)self.setGeometry(300, 300, 300, 200)self.setWindowTitle('提示框')self.show()    def main():    app = QApplication(sys.argv)    w = Bubble()sys.exit(app.exec())    if __name__ == '__main__':main()

退出按钮

import sys
from PyQt6.QtWidgets import (QApplication, QWidget, QToolTip, QPushButton)
from PyQt6.QtGui import QFontclass Bubble(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 参数1是按钮的标签,参数2是父级小部件qbtn = QPushButton('Quit', self)# 事件处理系统是信号和插槽机制构成的,点击按钮会发出点击信号# QApplication.instance获取QCoreApplication对象包含事件主循环,处理和分派所有事件# 点击的信号连接到终止应用程序的退出方法qbtn.clicked.connect(QApplication.instance().quit)qbtn.resize(qbtn.sizeHint())qbtn.move(50, 50)self.setGeometry(300, 300, 350, 250)self.setWindowTitle('Quit Button')self.show()    def main():    app = QApplication(sys.argv)    w = Bubble()sys.exit(app.exec())    if __name__ == '__main__':main()

弹框

点击关闭时弹出确认框确认是否关闭。

import sys
from PyQt6.QtWidgets import (QApplication, QWidget, QMessageBox)class Popup(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setGeometry(300, 300, 350, 250)self.setWindowTitle('消息框')self.show()    def closeEvent(self, event):reply = QMessageBox.question(self, 'Message', '确定退出?', QMessageBox.StandardButton.Yes|QMessageBox.StandardButton.No,QMessageBox.StandardButton.No)if reply == QMessageBox.StandardButton.Yes:event.accept()else:event.ignore()def main():    app = QApplication(sys.argv)    w = Popup()sys.exit(app.exec())    if __name__ == '__main__':main()

窗口居中显示

import sys
from PyQt6.QtWidgets import (QApplication, QWidget, QMessageBox)class Popup(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.resize(350, 250)self.center()self.setWindowTitle('居中')self.show()    def center(self):# 得到一个矩形窗口qr = self.frameGeometry()# 从屏幕属性中计算出分辨率cp = self.screen().availableGeometry().center()qr.moveCenter(cp)self.move(qr.topLeft())def main():    app = QApplication(sys.argv)    w = Popup()sys.exit(app.exec())    if __name__ == '__main__':main()

菜单和工具栏

QMainWindow类提供了主程序窗口,可以创建一个具有状态栏、工具栏和菜单栏的经典应用框架。

(1)状态栏显示就绪

import sys
from PyQt6.QtWidgets import (QApplication, QMainWindow)class StateColumn(QMainWindow):def __init__(self):super().__init__()self.initUI()def initUI(self):self.statusBar().showMessage('就绪')self.setGeometry(300, 300, 250, 250)self.setWindowTitle('状态栏')self.show()        def main()

相关文章:

PyQt6从入门到放弃

PyQt6从入门到放弃 安装PyQt6 pip install PyQt6# 查看QT和PyQT的版本 from PyQt6.QtCore import QT_VERSION_STR from PyQt6.QtCore import PYQT_VERSION_STR print(QT_VERSION_STR) print(PYQT_VERSION_STR)PyQt6模块 PyQt6类由一系列模块组成包括QtCore、QtGui、QtWidgets…...

PhpWord导入试卷

规定word导入格式 1、[单选题][2024][一般]题目1 A.选项1 B.选项2 C.选项3 D.选项4 答案&#xff1a;D 试题图片&#xff08;上传多媒体图片&#xff09;&#xff1a; 分数&#xff1a;2 答案解析&#xff1a; 2、[多选题][2024][困难]题目2 A.选项1 B.选项2 C.选项3 D.选项4 E…...

C# 运算符重载 之前的小总结

C# 中支持运算符重载&#xff0c;所谓运算符重载就是我们可以使用自定义类型来重新定义 C# 中大多数运算符的功能。运算符重载需要通过 operator 关键字后跟运算符的形式来定义的&#xff0c;我们可以将被重新定义的运算符看作是具有特殊名称的函数&#xff0c;与其他函数一样&…...

XenCenter 2024 创建一个虚拟机

前言 实现&#xff0c;创建一个虚拟机&#xff0c;内存&#xff0c;cpu&#xff0c;磁盘&#xff0c;名称&#xff0c;网卡&#xff0c;配置 Xen Center 2024 download 创建虚拟机 选择系统类型 定义虚拟机名称 选择ISO镜像库 选择主服务器 分配虚拟机内存&#xff0c;cpu资源…...

tomcat 知多少

Tomcat的缺省端口&#xff1a; 默认端口为8080&#xff0c;可以通过在tomcat安装包conf目录下&#xff0c;service.xml中的Connector元素的port属性来修改端口。 tomcat 常见 Connector 运行模式(优化)&#xff1a; 这三种模式的不同之处如下&#xff1a; BIO &#xff1a; 一…...

【详细讲解语言模型的原理、实战与评估】

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

Predict the Next “X” ,第四范式发布先知AIOS 5.0

今天&#xff0c;第四范式发布了先知AIOS 5.0&#xff0c;一款全新的行业大模型平台。 大语言模型的原理是根据历史单词去不断预测下一个单词&#xff0c;换一句常见的话&#xff1a;Predict the Next “Word”。 当前对于行业大模型的普遍认知就是沿用这种逻辑&#xff0c;用大…...

PCL使用4PCS配准

一、代码 C++ #include <pcl/registration/ia_fpcs.h> // 4PCS算法 #include <pcl/point_types.h> #include <pcl/point_cloud.h> #include <pcl/io/pcd_io.h> #include <pcl/io/ply_io.h> #include <boost/thread/thread.hpp> #include…...

【六 (2)机器学习-机器学习建模步骤/kaggle房价回归实战】

一、确定问题和目标&#xff1a; 1、业务需求分析&#xff1a; 与业务团队或相关利益方进行深入沟通&#xff0c;了解他们的需求和期望。 分析业务流程&#xff0c;找出可能的瓶颈、机会或挑战。 思考机器学习如何帮助解决这些问题或实现业务目标。 2、问题定义&#xff1a;…...

vue源码解析——vue如何将template转换为render函数

Vue 将模板&#xff08;template&#xff09;转换为渲染函数&#xff08;render function&#xff09;是 Vue 编译器的核心功能&#xff0c;它是 Vue 实现响应式和虚拟 DOM 的关键步骤。在 Vue 中&#xff0c;模板&#xff08;template&#xff09;是开发者编写的类似 HTML 的代…...

深入理解zookeeper

如果是zookeeper的初学者&#xff0c;可以看&#xff1a; zookeeper快速入门&#xff08;合集&#xff09;-CSDN博客 如果想要深入理解zookeeper&#xff0c;并在面试中取得更好的表现&#xff0c;可以看下面的文章&#xff0c;都是偏面试向的角度写的。 三分钟明白zookeeper…...

【漏洞复现】WordPress Plugin LearnDash LMS 敏感信息暴漏

漏洞描述 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 WordPress Plugin LearnDash LMS 4.10.2及之前版本存在安全漏洞&#x…...

phpmyadmin页面getshell

0x00 前言 来到phpmyadmin页面后如何getshell呢&#xff1f;下面介绍两种方法 0x01 select into outfile直接写入 1、利用条件 对web目录需要有写权限能够使用单引号(root) 知道网站绝对路径(phpinfo/php探针/通过报错等) secure_file_priv没有具体值 2、查看secure_file…...

题目:学习static定义静态变量的用法

题目&#xff1a;学习static定义静态变量的用法    There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheate…...

【C++】编程规范之函数规则

对所有函数入参进行合法性检查 在编写函数时&#xff0c;应该始终对所有传入的参数进行合法性检查&#xff0c;以防止出现意外的错误或异常情况。这包括但不限于检查指针是否为空、整数是否在有效范围内、数组是否越界等等。通过对参数进行严格的合法性检查&#xff0c;可以避免…...

HTML常用的图片标签和超链接标签

目录 一.常用的图片标签和超链接标签&#xff1a; 1.超链接标签&#xff1a; 前言: 超链接的使用&#xff1a; target属性: 1)鼠标样式&#xff1a; 2)颜色及下划线: 总结: 2.图片标签&#xff1a; 前言: img的使用: 设置图片&#xff1a; 1.设置宽度和高度: 2.HTM…...

浏览器工作原理与实践--WebAPI:XMLHttpRequest是怎么实现的

在上一篇文章中我们介绍了setTimeout是如何结合渲染进程的循环系统工作的&#xff0c;那本篇文章我们就继续介绍另外一种类型的WebAPI——XMLHttpRequest。 自从网页中引入了JavaScript&#xff0c;我们就可以操作DOM树中任意一个节点&#xff0c;例如隐藏/显示节点、改变颜色、…...

TCP网络协议栈和Posix网络部分API总结

文章目录 Posix网络部分API综述TCP协议栈通信过程TCP三次握手和四次挥手&#xff08;看下图&#xff09;三次握手常见问题&#xff1f;为什么是三次握手而不是两次&#xff1f;三次握手和哪些函数有关&#xff1f;TCP的生命周期是从什么时候开始的&#xff1f; 四次挥手通信状态…...

《解释器模式(极简c++)》

本文章属于专栏- 概述 - 《设计模式&#xff08;极简c版&#xff09;》-CSDN博客 模式说明 方案&#xff1a; 对每个data建立一个单点解释器对象X&#xff0c;dataA和dataB之间的关系&#xff0c;建立一个关系解释器对象Y&#xff0c;这里的Y处理的是X1和X2。这样&#xff0c;…...

c#仿ppt案例

画曲线 namespace ppt2024 {public partial class Form1 : Form{public Form1(){InitializeComponent();}//存放所有点的位置信息List<Point> lstPosition new List<Point>();//控制开始画的时机bool isDrawing false;//鼠标点击开始画private void Form1_MouseD…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

密码学基础——SM4算法

博客主页&#xff1a;christine-rr-CSDN博客 ​​​​专栏主页&#xff1a;密码学 &#x1f4cc; 【今日更新】&#x1f4cc; 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 ​编辑…...