
GUI-PyQt5
爱吃肉的牛牛
这个作者很懒,什么都没留下…
展开
-
PyQt5最全95 窗口之QSS基础超细
PyQt5最全95 窗口之QSS基础CSS教程:https://www.w3school.com.cn/css/index.asp详细请查看链接,不过读下面的一篇文章使用是完全没有问题了。QSS概念QSS的全程是Qt Style Sheets,顾名思义Qt样式表。Qt样式表是一种强大的机制,除了通过子类化QStyle已经可以实现的功能外,还允许您自定义窗口小部件的外观。 Qt样式表的概念,术语和语法受到HTML级联样式表(CSS)的启发,但适用于小部件世界。样式表是文本规范,可以使用QApplic原创 2021-12-21 22:23:02 · 4541 阅读 · 1 评论 -
PyQt5最全94 窗口之项目实战:QPixmap实现绘图应用
PyQt5最全94 窗口之项目实战:QPixmap实现绘图应用from PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *import sysclass Drawing(QWidget): """ 项目实战:实现绘图应用 需要解决三个核心内容: 1.如何绘图 在paintEVent方法中绘图,通过调用update方法触发paintEVent的调用原创 2021-12-19 22:19:59 · 1218 阅读 · 0 评论 -
PyQt5最全93 窗口之用代码控制窗口的最大化和最小化
PyQt5最全93 窗口之用代码控制窗口的最大化和最小化from PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *import sysclass WindowMaxMin(QWidget): """ 用代码控制窗口的最大化和最小化 获取桌面可以尺寸 QApplication.desktop() """ def __init__(self):原创 2021-12-19 22:15:11 · 3507 阅读 · 1 评论 -
PyQt5最全92 窗口之setWindowFlags设置窗口样式
PyQt5最全92 窗口之setWindowFlags设置窗口样式from PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *import sysclass WindowPattern(QMainWindow): """ 设置窗口样式(主要是窗口边框、标题栏和窗口本身的样式) """ def __init__(self): super(Windo原创 2021-12-19 22:09:45 · 4779 阅读 · 8 评论 -
PyQt5最全91 窗口之setStyle设置窗口风格
PyQt5最全91 窗口之setStyle设置窗口风格from PyQt5.QtWidgets import *from PyQt5 import QtCoreimport sysclass WindowStyle(QWidget): """ 窗口、绘图与特效:设置窗口风格 设置窗口中控件的风格 QApplication.setStyle(...) print(QStyleFactory.keys()) # ['Windows', 'WindowsXP原创 2021-12-19 22:06:19 · 2721 阅读 · 0 评论 -
PyQt5最全90 信号与槽之多窗口交互(2):使用信号与槽
PyQt5最全90 信号与槽之多窗口交互(2):使用信号与槽from PyQt5.QtWidgets import *import sysfrom DateDialog2 import DateDialog2class MultiWindow2(QWidget): """ 多窗口交互(2):使用信号与槽 """ def __init__(self): super(MultiWindow2, self).__init__() sel原创 2021-12-18 21:01:02 · 805 阅读 · 0 评论 -
PyQt5最全89 信号与槽之多窗口交互(1):不使用信号与槽
PyQt5最全89 信号与槽之多窗口交互(1):不使用信号与槽from PyQt5.QtWidgets import *import sysfrom DateDialog1 import DateDialog1class MultiWindow1(QWidget): """ 多窗口交互(1):不使用信号与槽 Win1 强耦合的方式直接从Win2中获取控件得到值 Win2 实现了在两个按钮下调用Win2中的类中的日历控件,也就是在点击按钮1和2对应原创 2021-12-18 17:28:37 · 899 阅读 · 0 评论 -
PyQt5最全88 信号与槽之Override覆盖槽函数
PyQt5最全88 信号与槽之Override覆盖槽函数from PyQt5.QtWidgets import *from PyQt5.QtCore import *import sysclass OverrideSlot(QWidget): """ Override(覆盖)槽函数 覆盖的话不需要连接了,已经存在过了,因为已经连接过了。 其实有的还是需要写连接的,比如你非得把某些信号连接到其他槽上,所以这里指的是默认的信号 """ def __原创 2021-12-18 17:19:40 · 444 阅读 · 0 评论 -
PyQt5最全87 信号与槽之使用partial对象为槽函数传递参数
PyQt5最全87 信号与槽之使用partial对象为槽函数传递参数from PyQt5.QtWidgets import *from functools import partialimport sysclass PartialSlotArg(QMainWindow): """ 使用partial对象为槽函数传递参数 """ def __init__(self): super(PartialSlotArg, self).__init__()原创 2021-12-18 17:13:10 · 444 阅读 · 0 评论 -
PyQt5最全86 信号与槽之使用Lambda表达式为槽函数传递参数
PyQt5最全86 信号与槽之使用Lambda表达式为槽函数传递参数from PyQt5.QtWidgets import *import sysclass LambdaSlotArg(QMainWindow): """ 使用Lambda表达式为槽函数传递参数 以前的槽函数的参数都是通过发射信号的emit方法传递的,在绑定时并没有传递参数,而Lambad表达式则可以 在QCheckBox复选框控件用到过的 Lambda表达式传递参数 可以翻回去看一下原创 2021-12-18 17:08:59 · 1554 阅读 · 0 评论 -
PyQt5最全85 信号与槽之connectSlotsByName信号槽自动连接
PyQt5最全85 信号与槽之connectSlotsByName信号槽自动连接from PyQt5.QtWidgets import *from PyQt5 import QtCoreimport sysclass AutoSignalSlot(QWidget): """ 信号与槽自动连接 QMetaObject.connectSlotsByName 避免使用connect 规定格式:on_objectname_signalname eg: o原创 2021-12-18 17:04:04 · 1550 阅读 · 2 评论 -
PyQt5最全84 信号与槽之多线程更新UI数据
PyQt5最全84 信号与槽之多线程更新UI数据from PyQt5.QtWidgets import *from PyQt5.QtCore import *import sysimport timeclass BackendThread(QThread): """ 多线程更新UI数据 """ update_date = pyqtSignal(str) def run(self): while True: da原创 2021-12-15 21:59:05 · 932 阅读 · 0 评论 -
PyQt5最全83 信号与槽之为窗口类添加信号
PyQt5最全83 信号与槽之为窗口类添加信号from PyQt5.QtWidgets import *from PyQt5.QtCore import *import sysclass WinSignal(QWidget): """ 为窗口类添加信号 这里实现在一个按钮的槽函数中添加关闭选项,以前的是之间绑定系统的关闭选项 """ button_clicked_signal = pyqtSignal() def __init__(self):原创 2021-12-15 21:55:30 · 626 阅读 · 0 评论 -
PyQt5最全82 信号与槽之多个信号与槽的连接与断开
PyQt5最全82 信号与槽之多个信号与槽的连接与断开from PyQt5.QtCore import *class NSignalNSlot(QObject): """ N Signal N Slot 信号槽N对N的连接与断开 断开是disconnect """ signal1 = pyqtSignal() signal2 = pyqtSignal(int) signal3 = pyqtSignal() def __init原创 2021-12-15 21:48:02 · 1242 阅读 · 0 评论 -
PyQt5最全81 信号与槽之为类添加多个参数可选的信号
PyQt5最全81 信号与槽之为类添加多个参数可选的信号from PyQt5.QtCore import *class MultiSignal(QObject): """ 为类添加多个信号 """ signal1 = pyqtSignal() # 无参数 signal2 = pyqtSignal(int) signal3 = pyqtSignal(int, str) signal4 = pyqtSignal(list) signal原创 2021-12-15 21:45:43 · 827 阅读 · 0 评论 -
PyQt5最全80 信号与槽之pyqtSignal自定义信号
PyQt5最全80 信号与槽之pyqtSignal自定义信号from PyQt5.QtCore import *class MyTypeSignal(QObject): """ 自定义信号 实现两个对象的通信 pyqtSignal() 在counter文件 使用线程类(QThread)编写计数器 中使用过 """ # 定义一个信号 sendmsg = pyqtSignal(object) # 发送一个信号 # 发送3个参原创 2021-12-15 21:42:09 · 1994 阅读 · 0 评论 -
PyQt5最全79 信号与槽之信号(Signal)与槽(Slot)基础
PyQt5最全79 信号与槽之信号(Signal)与槽(Slot)基础import sysfrom PyQt5.QtWidgets import *class SignalSlotDemo(QWidget): """ 信号(Signal)与槽(Slot) 信号本质上来讲是一个事件,需要程序或者点击等事件来触发 槽一般是指函数或者方法,槽是接收信号的程序 """ def __init__(self): super(SignalSlo原创 2021-12-15 21:36:52 · 763 阅读 · 0 评论 -
PyQt5最全78 布局之QSplitter拖动控件之间的边界
PyQt5最全78 布局之QSplitter拖动控件之间的边界import sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *class Splitter(QWidget): """ 拖动控件之间的边界 QSplitter() """ def __init__(self): super(Splitter, self).__init__() self.ini原创 2021-12-15 21:31:24 · 888 阅读 · 0 评论 -
PyQt5最全77 布局之QFormLayout表单布局: 表单设计
PyQt5最全77 布局之QFormLayout表单布局: 表单设计import sysfrom PyQt5.QtWidgets import *class FormLayout(QWidget): """ 表单布局: 表单设计 QFormLayout() 即利用表单布局完成和上节同样的表单布局 """ def __init__(self): super(FormLayout, self).__init__() se原创 2021-12-15 21:26:22 · 1093 阅读 · 0 评论 -
PyQt5最全76 布局之QGridLayout实现计算机UI
PyQt5最全76 布局之QGridLayout实现计算机UIimport sysfrom PyQt5.QtWidgets import *class GridLayoutCalc(QWidget): """ 栅格布局:QGridLayout() 实现计算机UI """ def __init__(self): super(GridLayoutCalc, self).__init__() self.setWindowTitl原创 2021-12-15 21:23:46 · 626 阅读 · 0 评论 -
PyQt5最全75 布局之QGridLayout栅格布局
PyQt5最全75 布局之QGridLayout栅格布局import sysfrom PyQt5.QtWidgets import *class GridForm(QWidget): """ 栅格布局: 表单设计 QGridLayout() 即利用栅格布局完成表单布局,具体表单布局见下节 """ def __init__(self): super(GridForm, self).__init__() self.set原创 2021-12-15 21:21:34 · 2069 阅读 · 0 评论 -
PyQt5最全74 布局之技巧让按钮永远在窗口的右下角
PyQt5最全74 布局之技巧让按钮永远在窗口的右下角import sysfrom PyQt5.QtWidgets import *class RightBottomButton(QWidget): """ 小技巧:让按钮永远在窗口的右下角 """ def __init__(self): super(RightBottomButton, self).__init__() self.setWindowTitle('让按钮永远在右下角原创 2021-12-14 19:58:43 · 2732 阅读 · 0 评论 -
PyQt5最全73 布局之addStretch设置布局的伸缩量
PyQt5最全73 布局之addStretch设置布局的伸缩量import sysfrom PyQt5.QtWidgets import *class Stretch(QWidget): """ 设置布局的伸缩量:addStretch """ def __init__(self): super(Stretch, self).__init__() self.setWindowTitle('设置伸缩量') self.re原创 2021-12-14 19:54:32 · 1612 阅读 · 0 评论 -
PyQt5最全72 布局之设置控件的对齐方式
PyQt5最全72 布局之设置控件的对齐方式import sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import Qtclass HBoxLayoutAlign(QWidget): """ 设置控件的对齐方式 addWidget方法 """ def __init__(self): super(HBoxLayoutAlign, self).__init__() self.se原创 2021-12-14 19:51:03 · 5759 阅读 · 3 评论 -
PyQt5最全71 布局之QVBoxLayout垂直盒布局
PyQt5最全71 布局之QVBoxLayout垂直盒布局import sysfrom PyQt5.QtWidgets import *class VBoxLayout(QWidget): """ 垂直盒布局:QVBoxLayout """ def __init__(self): super(VBoxLayout, self).__init__() self.setWindowTitle('垂直盒布局') layo原创 2021-12-14 19:48:53 · 910 阅读 · 0 评论 -
PyQt5最全70 布局之QHBoxLayout水平盒布局
PyQt5最全70 布局之QHBoxLayout水平盒布局import sysfrom PyQt5.QtWidgets import *class HBoxLayout(QWidget): """ 水平盒布局:QHBoxLayout """ def __init__(self): super(HBoxLayout, self).__init__() self.setWindowTitle('水平盒布局') hlay原创 2021-12-14 19:46:57 · 549 阅读 · 0 评论 -
PyQt5最全69 布局之move方法绝对布局
PyQt5最全69 布局之move方法绝对布局import sysfrom PyQt5.QtWidgets import *class AbsoluteLayout(QWidget): """ 绝对布局: move 方法 通过x, y坐标来控制控件位置 """ def __init__(self): super(AbsoluteLayout, self).__init__() self.setWindowTitle('绝对布局原创 2021-12-14 19:45:35 · 1249 阅读 · 0 评论 -
PyQt5最全68 Web之PyQt5调用JavaScript代码
PyQt5最全68 PyQt5调用JavaScript代码from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtWebEngineWidgets import *import sysimport osclass WebEngineView(QWidget): """ PyQt5调用JavaScript代码 PyQt5和JavaScrip交互 什么叫交互 PyQt5<原创 2021-12-14 19:40:47 · 2110 阅读 · 0 评论 -
PyQt5最全67 Web之显示嵌入本地Web页面
PyQt5最全67 显示嵌入本地Web页面from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWebEngineWidgets import *import sysimport osclass InnerHTML(QMainWindow): """ 显示嵌入Web界面 setHtml """ def __init__原创 2021-12-14 19:37:33 · 2827 阅读 · 0 评论 -
PyQt5最全66 Web之装载本地Web页面
PyQt5最全66 装载本地Web页面from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWebEngineWidgets import *import sysimport osclass WebEngineView(QMainWindow): """ 装载本地Web界面 load fromLocalFile """原创 2021-12-14 19:35:31 · 1982 阅读 · 0 评论 -
PyQt5最全65 Web之使用QWebEngineView浏览器控件显示网页
PyQt5最全65 使用QWebEngineView浏览器控件显示网页from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtWebEngineWidgets import *import sysclass WebEngineView(QMainWindow): """ 用Web浏览器(QWebEngineView)显示网页 PyQt5和Web的交互技术 同时使用Python和W原创 2021-12-14 19:31:00 · 1593 阅读 · 0 评论 -
PyQt5最全64 使用QThread线程类编写计数器
PyQt5最全63 使用QThread线程类编写计数器from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *import syssec = 0class WorkThread(QThread): timer = pyqtSignal() # 每隔一秒发射一次信号 end = pyqtSignal() # 计数完成后发射一次信号 def run(self):原创 2021-12-12 17:58:49 · 411 阅读 · 0 评论 -
PyQt5最全63 QTimer之singleShot自动关闭窗口
PyQt5最全63 QTimer之singleShot自动关闭窗口from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *import sysclass AutoCloseWindow(QMainWindow): """ 自动关闭窗口第二种方法 """ def __init__(self): super(AutoCloseWindow, sel原创 2021-12-12 17:55:11 · 4641 阅读 · 0 评论 -
PyQt5最全62 多线程之QTimer动态显示当前时间
PyQt5最全62 多线程之QTimer动态显示当前时间from PyQt5.QtWidgets import *from PyQt5.QtCore import *import sysclass ShowTime(QWidget): """ 动态显示当前时间 QTimer 多线程:用于同时完成多个任务 """ def __init__(self): super(ShowTime, self).__init__()原创 2021-12-12 17:49:39 · 743 阅读 · 0 评论 -
PyQt5最全61 容器之QScrollBar滚动条控件
PyQt5最全61 容器之QScrollBar滚动条控件from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *import sysclass ScrollBar(QWidget): """ 滚动条控件:QScrollBar 作用: 1.通过滚动条的变化控制其他控件的变化 2.通过滚动条值的变化控制控件位置的变化 """ def __原创 2021-12-12 17:43:35 · 1054 阅读 · 0 评论 -
PyQt5最全60 容器之QMdiArea和QMdiSubWindow容纳多文档的窗口
PyQt5最全60 容器之QMdiArea和QMdiSubWindow容纳多文档的窗口from PyQt5.QtWidgets import *import sysclass MultiWindows(QMainWindow): """ 容纳多文档的窗口 QMdiArea QMdiSubWindow 点击菜单中添加文档窗口可以新建窗口,并且可以设置层叠和平铺两种排列模式 """ def __init__(self): sup原创 2021-12-12 17:39:34 · 1053 阅读 · 0 评论 -
PyQt5最全59 容器之QDockWidget停靠控件
PyQt5最全59 容器之QDockWidget停靠控件from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *import sysclass DockDemo(QMainWindow): """ 停靠控件:QDockWidget 把某一个窗口停靠到上下左右某一个区域 """ def __init__(self): super(Dock原创 2021-12-12 17:31:54 · 474 阅读 · 0 评论 -
PyQt5最全58 容器之QStackedWidget堆栈窗口控件
PyQt5最全58 容器之QStackedWidget堆栈窗口控件from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *import sysclass StackedExample(QTabWidget): """ 堆栈窗口控件:QStackedWidget """ def __init__(self): super(Stacked原创 2021-12-12 17:29:12 · 1309 阅读 · 0 评论 -
PyQt5最全57 容器之QTabWidget选项卡控件同一个窗口显示更多的控件
PyQt5最全57 容器之QTabWidget选项卡控件同一个窗口显示更多的控件from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *import sysclass TabWidgetDemo(QTabWidget): """ 选项卡控件:QTabWidget 控件QTabWidget 继承于QWidget 显示在不同的页面,或者可以在同一个窗口显示更多的控原创 2021-12-12 17:26:57 · 1179 阅读 · 0 评论 -
PyQt5最全56 树控件之QTreeView控件与系统定制模式
PyQt5最全56 树控件之QTreeView控件与系统定制模式from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import Qtimport sysclass TreeView(QMainWindow): """ QTreeView控件与系统定制模式 复杂的树利用这个控件 区别于QTreeWidget 使用Model进行装载 model内的方法QD原创 2021-12-08 20:46:38 · 1802 阅读 · 0 评论