![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PyQt5
线上放牧人
这个作者很懒,什么都没留下…
展开
-
pyqt5 QScrollArea组件
pyqt5中QScrollArea的使用示例原创 2024-04-10 22:34:02 · 353 阅读 · 0 评论 -
pyqt5自定义QComboBox实现居中显示
pyqt5自定义QComboBox自定义,实现文本居中显示原创 2024-04-10 11:01:17 · 361 阅读 · 1 评论 -
pyqt5的QListWidget跟QTreeWidget实现item鼠标点击触发事件
pyqt5的QListWidget跟QTreeWidget实现item鼠标点击触发事件原创 2023-01-05 19:59:20 · 2716 阅读 · 0 评论 -
pyqt5下的QInputDialog跟QFileDialog以及关闭主窗口子窗口自动关闭
pyqt5下的QInputDialog跟QFileDialog以及关闭主窗口子窗口自动关闭原创 2023-01-05 19:52:48 · 961 阅读 · 0 评论 -
pyqt5设置标题栏三个按钮以及窗口大小
pyqt5设置标题栏三个按钮以及窗口大小原创 2023-01-05 19:34:44 · 1711 阅读 · 0 评论 -
pyqt5设置窗口透明以及设置图片缩放以填充QLabel
pyqt5设置窗口透明以及设置图片缩放以填充QLabel原创 2023-01-05 19:27:38 · 3181 阅读 · 1 评论 -
QSS常用属性
pyqt5中QSS常用属性demo原创 2023-01-05 19:03:33 · 439 阅读 · 0 评论 -
pyqt5中QGraphicsView弹出菜单
使用QGraphicsView绘制弹出菜单按钮原创 2023-01-03 21:13:52 · 1512 阅读 · 0 评论 -
pyqt5 QPainter绘制图形,并旋转
QPainter绘制图像,并转动原创 2022-12-28 11:25:33 · 1901 阅读 · 0 评论 -
pyqt5中QBasicTimer跟QTimer的使用
pyqt5中的计时器使用原创 2022-12-06 11:18:56 · 675 阅读 · 1 评论 -
pyqt5使用QFile跟QDataStream进行二进制文件的读写
pyqt5原创 2022-07-19 15:48:24 · 1371 阅读 · 0 评论 -
pyqt5自定义QRadioButton增加鼠标右击功能
pyqt5自定义组件增加右键上下文菜单原创 2022-07-10 16:04:18 · 565 阅读 · 0 评论 -
pyqt5状态栏增加标签以及
pyqt5状态栏增加进度条原创 2022-07-10 16:00:18 · 920 阅读 · 0 评论 -
pyqt5解决电脑缩放比例不同造成的显示效果不同(字体变小,图标变小等)
pyqt5原创 2022-07-10 11:35:01 · 6926 阅读 · 3 评论 -
pyqt5中的QSpliter调整各个控件的大小
pyqt5原创 2022-07-07 21:44:57 · 2756 阅读 · 0 评论 -
QWebEngineView加载本地HTML文件
QWebEngineView加载HTML文件原创 2022-06-22 15:26:53 · 1748 阅读 · 0 评论 -
pyqtgraph清空画布
有一个场景,实时检测数据并做实时绘图,应为实时绘图时,数据量太大会导致pyqtgraph界面无响应,这时候要每隔一段时间本地化保存一下数据,并清空当前画布,应为画布中有十字交叉线,清空画布时,不想将其也清除掉,另外还有一点就是,清空画布属于耗时操作,最好放到线程中执行,不然每次清空时,都会出现ANR,一段时间后会恢复pyqtgraph源代码中有两个清除操作,分别如下:clear()方法会清除plot上的所有item,包括图例,以及自定义的十字交叉线等等而clearPlots()方法只会清除当原创 2022-04-15 15:42:44 · 7746 阅读 · 0 评论 -
pyinstaller打包报错(qt-material)
在程序中,用到了qt-material库,IDE中一切正常,使用pyinstaller打包时,报错如下:报错说是Path没有home属性,经过查找,找到了qt-material安装包resource目录下有一个generate.py文件,在文件中使用了pathlib库,源文件代码如下,这时候把Path.home()一行注释掉,写自己用户的家目录即可,他会到家目录下的.qt-material获取文件,注意,不是每台电脑都会出现这个问题,出现问题后按照说明修改就好第二种解决办法就是,程序打包完成后,将q原创 2022-04-13 22:55:02 · 2603 阅读 · 0 评论 -
pyqt5一个实时展示数据,并将数据保存在本地的例子
有一个数据监控场景,监控设备的运行情况,每隔1s获取一次数据,GUI做实时展示,如果有错误的数据,就展示到前端的QTableWidget中,并进行本地保存,保存格式为xlsx格式,除此之外,所有的数据新建一个sheet进行保存,跟错误数据是一个文件,不同的sheet进行区分,保存所有展示数据的时候因为采样频率比较快,不能实时本地化保存,设置一个时间间隔,每10分钟,也就是600个采样点就保存一次,避免不必要的IO开销,还需要考虑的就是,当用户关闭窗口时,需要在关闭事件中进行判断,并做最后的保存。代码示例原创 2022-04-12 11:59:59 · 1782 阅读 · 0 评论 -
pyqt5一个多线程保存数据为excel的示例
多线程保存示例,用到了QThread,openpyxl,进过测试使用openpyxl向Excel插入数据,四列十万行,大概两秒钟就可以完成import osfrom PyQt5.QtCore import QThreadfrom openpyxl import Workbook, load_workbook# 定义一个多线程,用来保存dpd监控时出现的异常数据class data_save(QThread): def __init__(self, data, filename,原创 2022-04-11 21:57:42 · 1005 阅读 · 0 评论 -
QTableWidget 常用设置
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'tableWidget.ui'## Created by: PyQt5 UI code generator 5.15.4## WARNING: Any manual changes made to this file will be lost when pyuic5 is# run again. Do not edit this file.原创 2022-04-11 17:28:31 · 1889 阅读 · 0 评论 -
pyqtgraph关闭鼠标右键上下文菜单
self.plot_plt.setMenuEnabled(False) # 关闭鼠标右键上下文菜单鼠标的右键上下文关闭后,增加鼠标左键选择区域,然后进行方法的功能pg.setConfigOption('leftButtonPan', False)官方文档:Introduction — pyqtgraph 0.12.4.dev0 documentation...原创 2022-04-09 19:27:49 · 927 阅读 · 0 评论 -
pyinstaller 打包报错Failed to determine matplotlib‘s data directory
pyqt中使用了matplotlib库,在使用pyinstaller打包的时候,报错Failed to determine matplotlib's data directory,网上好多解决办法都没有用,这里介绍一种有用的方法。参考:python - Matplotlib directory not found while using Pyinstaller to create exe from py files - Stack Overflow找到该文件:目录:D:\Progr原创 2022-04-08 16:00:21 · 2845 阅读 · 0 评论 -
pyinstaller多文件打包
多文件打包参考:Pyinstaller 打包发布经验总结_YanHua_jake的博客-CSDN博客原创 2021-11-18 19:29:25 · 1629 阅读 · 0 评论 -
pyqt5关闭窗口事件重写
重写关闭事件,点击关闭按钮弹窗,并让用户确认是否关闭,且默认按钮选择否# 窗口关闭按钮事件 def closeEvent(self, event): """Shuts down application on close.""" reply = QMessageBox.question(self, '警告', '<font color=red><b>窗口关闭后,将终止本次运行</b></font>',原创 2022-04-08 10:46:45 · 2918 阅读 · 2 评论 -
pyqt5线程的启动,暂停,恢复与停止
简单介绍在pyqt5中,如果不是特别复杂的程序,不建议手动操作线程,因为有时候不知道会发生什么致命的bug,在qt中操作线程的简单说明:QWaitCondition()用于多线程同步,一个线程调用QWaitCondition.wait()阻塞等待,直到另外一个线程调用QWaitCondition.wake()唤醒才继续往下执行QMutex():是锁对象线程执行的时候需要先上锁,并在运行的时候,定义一个判断标志,如果该标志触发就执行线程的挂起,直到再次唤醒。案例一主程序启动一个.原创 2022-04-07 23:52:17 · 11980 阅读 · 0 评论 -
pyqt5调用多线程以及QDialog弹窗处理数据
有一个应用场景,pyqt5执行过程中,启动一个QThread执行耗时操作,QThread执行过程中,会生成数据,生成的数据需要实时展示,这时候主程序在收到数据后,会调用QDialog实时展示,需要将数据由QThread传递到QDialog中,QDialog是一个单独的模块供主程序调用,在调用时,需要先启动QDialog,然后再调用QThread,下面是一个示例:思路:1. QThread中定义一个信号,QThread调用逻辑函数时,将自己定义的信号传递进去,由逻辑函数使用该信号发送产生的数据;2原创 2022-04-06 17:28:47 · 2655 阅读 · 0 评论 -
pyqt5多级信号传递解决办法
在编写pyqt程序时,经常用到Qt 多线程,而通常不在多线程的run()函数直接写逻辑函数,而是另外起一个类来写主逻辑,这时候如果逻辑函数类中需要传递信号到qt主函数,就是三级信号传递,这时候就不能简单的使用每个类中各自定义一个pySignal()来传递参数了,因为逻辑函数并不是主函数直接调用的,传递参数没有用,下面的办法可以解决:在主函数调用QT多线程时,将多线程中定义好的信号传递给逻辑函数,这样逻辑函数也不需要继承任何类,直接使用多线程定义的信号发送消息即可。网上查了好久都没有解决办法,最后自己原创 2022-04-05 22:36:45 · 1503 阅读 · 0 评论 -
Python打开电脑文件夹
Python程序中,直接打开目标文件夹的方法在写pyqt程序时,有时候也会调用工具栏按钮,打开指定的文件夹,例如,运算结果文件,这时候可以使用下面的方式import os# 工具栏打开测试结果保存文件夹def openResultFile(self): result_file_path = os.path.join(os.getcwd(), 'result_file') # os.system(f'explorer.exe /n, {result_file_path}')原创 2022-04-05 00:29:45 · 3513 阅读 · 0 评论 -
pyqt5动态设置字体大小
利用QFontDialog组件的getFont()方法进行字体的设置下面是使用工具栏按钮绑定设置字体的方法进行界面字体设置,设置完成后并进行本地化保存,界面重启时进行加载利用下面的方式进行工具栏按钮的绑定self.toolBarSetFontSize.triggered.connect(self.setFontSize) # 工具栏设置字体大小,使用lambda表达式传递参数# 通过工具栏的设置字体按钮-->设置界面字体 def setFo原创 2022-04-04 23:14:42 · 5759 阅读 · 0 评论 -
pyqt5设置高分辨率以及icon显示模糊解决办法
pyqt5设置高分辨率,有时候在designer中设置好图标,使用Ctrl+r查看界面很清晰,但是在程序中启动时,却显示图片比较模糊,使用下面的代码即可解决:# PyQt5高清屏幕自适应设置,以及让添加的高清图标显示清晰,不然designer导入的图标在程序加载时会特别模糊QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)app = QA原创 2022-03-30 11:39:24 · 2832 阅读 · 1 评论 -
QSS测试参考
参考:使用Qss设置QT程序界面的样式和皮肤 - 一字千金 - 博客园官网参考:Qt Style Sheets Reference — Qt for Python原创 2022-03-30 11:36:37 · 145 阅读 · 0 评论 -
Qt Designer 使用,注意事项
1. 组件尺寸大小策略说明Spliter原创 2022-03-28 18:38:39 · 780 阅读 · 0 评论 -
PyQt5鼠标追踪事件
在PyQt5中想要实现追踪鼠标的坐标,并实现实时打印出来,需要开启鼠标追踪功能。如果想要界面中的所有组件,或者QDialog弹窗获取坐标点,那么每个组件都需要做如下设置setMouseTracking(True)注意:如果重写了一个组件,想要组件获取鼠标坐标,且组件为弹窗式,这样需要在重写的组件中加上mouseMoveEvent方法from PyQt5.QtCore import Qtfrom PyQt5.QtWidgets import QDialog# 自定义QDial原创 2022-03-27 14:58:32 · 3336 阅读 · 0 评论 -
PyQt5实现QDialog增加最大化最小化按钮
import sysfrom PyQt5.QtWidgets import QDialog, QApplicationfrom PyQt5.QtCore import Qt'''该自定义类实现的是在QDialog窗口增加最大化最小化按钮功能,网上的各种答案基本都不对,花费了好几个小时才搞定了,self.setWindowFlags(Qt.Dialog | Qt.WindowMinMaxButtonsHint | Qt.WindowCloseButtonHint)网上的各种方式在主窗口调用.原创 2022-03-26 20:24:30 · 2353 阅读 · 0 评论