202103-09 PyQt5 在QListWidget自定义Item的操作 效果图自定义一个Item新建一个QWidget对象在QWidget内添加Layout在Layout内添加要的控件为QWidget设置Layout新建一个QListWidgetItem并调整大小为QListWidgetItem设置QWidget创建布局首先我们创建一个最基本的布局,只有一个listWidget和一个pushButton实现点击button后在listWidget中添加数据classWindows(QMainWindow,Ui_MainWindow):def__init__(self):super(Windows,self).__init__()self.setupUi(self)self.pushBu... 继续阅读 >
202103-09 PYQT5 实现给listwidget的滚动条添加滚动信号 PYQT5中给listwidget的滚动条添加滚动信号self.listWidget.verticalScrollBar().valueChanged.connect(lambda:print(1))其他带有滚动条的控件也用这种方法补充:PyQt5中设置QtreeWidget水平滚动条这个问题,困惑我好一段时间,网上找了很多资料,各种尝试都没解决,隐隐约约在一个论坛中一个作者提到一句话,才得到解决。问题描述如下:开发过程中,有时候会去开发树形展示的界面,尤其文件管理系统时。由于pyqt5单独python的文... 继续阅读 >
202103-09 pyqt5 设置窗体透明控件不透明的操作 我就废话不多说了,大家还是直接看代码吧~//窗体透明,控件不透明self.setWindowFlags(Qt.FramelessWindowHint|Qt.Tool)self.setAttribute(Qt.WA_TranslucentBackground)补充:【解决问题】pyqt5设置窗体透明,而上面的控件不透明在做软件的时候想把QWidget设置成透明的,我在网上搜了各种答案:有说设置qss背景属性的:background:transparent;但是这样就全透明了。如图3还有qss里设置background:rgba(0,0,0,0.2)也是一样的... 继续阅读 >
202103-09 PyQt5 matplotlib画图不刷新的解决方案 本人最近在做一个GUI项目时,需要用到matplotlib画图,写完代码运行时,发现所需要画图功能不能正常使用,在触发画图事件后,画布未更新,需要放大界面才能更新(奇葩吧)。经过资料查阅,发现需要画图函数后面添加self.fig.canvas.draw_idle()补充:解决PyQt5中使用柱状图和饼状图刷新问题一、问题描述在做一款番茄钟应用,其中包含数据统计功能,如下图:我遇到的问题是:当完成一个番茄钟后,需要对统计数据进行刷新,但是重新... 继续阅读 >
202103-09 PyQt5 设置窗口全屏显示方式 调用窗口的主程序如下起作用的是window.showFullScreen()这个方法。if__name__=='__main__':app=QtWidgets.QApplication(sys.argv)window=MyMainWindow()window.showFullScreen()sys.exit(app.exec_())补充:PYQT5的UI界面自适应窗口大小|QtdesignerPYQT5设置自适应的窗口大小目前网上的相关博客的介绍都太过于表面,本人基于自身需求,将我亲自实践得到的方法,倾囊相授。核心点两个:网格布局+大小限定其实基本每... 继续阅读 >
202103-09 Pyqt5 实现窗口缩放,控件在窗口内自动伸缩的操作 在Qtdesigner中新建一个主界面如下所示:ctrl+R预览从预览图中可以看出这时的界面不支持伸缩,拖动过小的话会导致部分界面遮住不可见,这时我们就要用到布局选项,首先对上面的按钮和文本框布局按住ctrl选中要布局的控件根据实际情况选中工具栏上的布局按钮,我这里是网格布局选中后如下所示然后在对底下的listwidget和tablewidget进行水平布局,布局完成后如下所示,其中有个细节是还要对Qgroupbox在进行一次水平或垂直布局,具... 继续阅读 >
202103-09 PyQt 5 设置Logo图标和Title标题的操作 从现在开始,我会把一些学习Python的笔记记录下来,方便自己,也方便别人。到时候看一下如果篇章足够,我单独把它们整理成专栏。最近在学习PythonGUI开发,之前一直都是做的C++GUI开发,用到的大部分是框架,主要有MFC、DuiLib和Qt。哦,如果想省时省力,可以使用QtWebEngine+H5开发界面哦,只有你Web前端基础不错的话。使用PyQt5开发界面,真的很方便,不用写太多代码,20行左右就可以出现简单的带图标GUI,不信你可以看看下... 继续阅读 >
202103-09 解决PyQt5 无边框后窗口的移动问题 由于隐藏了标题栏无法通过点击标题栏来实现窗口的移动,这时候我们可以通过鼠标事件来移动窗口第一步:判断鼠标左键是否被按下,如果按下则将flag设为True并获取当前的位置第二步:判断鼠标是否移动并且左键被按下,若移动了计算移动的距离在移动窗口第三步:若鼠标释放了则将flag设为False具体做法:重写窗口类自带的三个函数defmousePressEvent(self,event):ifevent.button()==Qt.LeftButton:self.m_flag=True... 继续阅读 >
202103-09 PyQt5 实现给无边框widget窗口添加背景图片 我就废话不多说了,大家还是直接看代码吧~#!/usr/bin/envpython#-*-coding:utf-8-*-importsysfromPyQt5.QtWidgetsimportQApplication,QWidgetfromPyQt5.QtCoreimportQtfromPyQt5.QtGuiimportQPalette,QBrush,QPixmapclassNoBorderWindow(QWidget):def__init__(self):super().__init__()self.window_UI()self.drawn()defwindow_UI(self):self.resize(950,200)self.setWindowFl... 继续阅读 >
202102-21 PyQt5通过信号实现MVC的示例 众所周知MVC是个好东西。前阵子网上搜了下,但关于用PyQt5实现MVC的中文文档缺少之又少,优质的文档只搜到了一篇。既然这样,来,开个坑,学习新知识,吸引流量。话说,关于PyQt5,布局那里需要好好看看,容器类控件需要好好看看,还有多线程和自动化测试那块。但要写出完美GUI需要大量的代码经验和文档查询的能力。然后,嗯,这部分坑就填完了。扯回正题:假设此时面临的场景是,一个软件涉及好几个页面,每个页面是单独的代码。... 继续阅读 >
202101-21 PyQt5中QSpinBox计数器的实现 QSpinBox是一个计数器控件,允许用户选择一个整数值,通过单击向上/向下按钮或按键盘上的上/下箭头来增加/减少当前显示的值,当然用户也可以输入值。在默认情况下,QSpinBox的取值范围是0~99,每次改变的步长值为1。QSpinBox类和QDoubleSpinBox类均派生自QAbstractSpinBox类。QSpinBox用于处理整数值,QDoubleSpinBox则用于处理浮点值,它们之间的区别就是处理数据的类型不同,其他功能都基本相同。QDoubleSpinBox的... 继续阅读 >
202012-10 详解Python GUI编程之PyQt5入门到实战 1.PyQt5基础1.1GUI编程学什么大致了解你所选择的GUI库基本的程序的结构:使用这个GUI库来运行你的GUI程序各种控件的特性和如何使用控件的样式资源的加载控件的布局事件和信号动画特效界面跳转设计工具的使用 1.2PyQT是什么QT是跨平台C++库的集合,它实现高级API来访问现代桌面和移动系统的许多方面。这些服务包括定位和定位服务、多媒体、NFC和蓝牙连接、基于Chromium的web浏览器以及传统的UI开发。Py... 继续阅读 >
202012-07 pyqt5实现井字棋的示例代码 本文介绍的是利用pyqt5实现井字棋,下面话不多说了,来一起看看详细的介绍作者:袁少泽代码如下(示例):importrandomimportsysimporttimefromPyQt5.QtCoreimport*fromPyQt5.QtWidgetsimport*start=time.time()classUi_Form(object):defsetupUi(self,Form):Form.setObjectName("Form")Form.resize(415,346)self.label_3=QtWidgets.QLabel(Form)self.label_3.setGeometry(QtCore.QRect(30,290,241,20))sel... 继续阅读 >
202011-13 opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器 定位色块常用到hsv色彩空间下的颜色阈值,笔者曾经用openmv时,其IDE有自带一个阈值编辑器,使用起来非常方便,现在在linux上跑cv算法,需要类似的功能,因此自己写了一个阈值编辑器。目前暂时只支持HSV色彩空间下的阈值编辑。代码:mian.py:fromthreshold_uiimportUi_WidgetfromPyQt5.QtWidgetsimportQApplicationfromPyQt5.QtGuiimportQImage,QPixmap,QFontfromPyQt5importQtWidgetsimportsysimportcv2importnum... 继续阅读 >
202010-23 如何让PyQt5中QWebEngineView与JavaScript交互 准备工作开发环境Python3.8.1Windows10安装依赖pipinstallPyQt5pipinstallPyQtWebEnginePython端1.使用QWebChannel的registerObject("JsBridge名","JsBridge")方法注册回调JsBridge名:在JavaScript中调用时使用的对象名称JsBridge:被JavaScript调用的Python对象2.JsBridge对象入参@QtCore.pyqtSlot(str)deflog(self,message):print(message)出参@QtCore.pyqtSlot(result=str)defgetName(self):r... 继续阅读 >
202010-21 PyQt5的QWebEngineView使用示例 一.支持视频播放关键代码self.settings().setAttribute(QWebEngineSettings.PluginsEnabled,True)#支持视频播放二.支持页面关闭请求关键代码self.page().windowCloseRequested.connect(self.on_windowCloseRequested)#页面关闭请求三.支持页面下载请求关键代码self.page().profile().downloadRequested.connect(self.on_downloadRequested)#页面下载请求完整源码【如下代码,完全复制,直接运行,即可使用】67891011121314... 继续阅读 >