紧急更新
compile_commands.json
Makefile
该项目,目前处于开发阶段
3.xxx 以上
pyside2, pyside6, pyqt5, pyqt6
win mac
pip install PyQtGuiLib
Log # 日志 tests # 组件测试文件 abandonCase # 存放已经放弃的的案例 PyQtGuiLib |- animation # 动画功能文件 |- core # 组件的核心实现文件 |- styles # 基础组件皮肤包 |- header # 公共模块,函数文件 |- layoutDeformation # 影像形变布局(待写)
PyQt5学习爱好群-(讨厌自己) -- PyQtGuiLib 0.0.8.0版本 ---> 修复了Borderless右下角拉伸BUG PyQt5学习爱好群-(讨厌自己) -- PyQtGuiLib 1.1.9.5版本 ---> 修复 PyQt6 版本下 无边框类(Borderless)移动BUG
导入方式 from PyQtGuiLib.styles import xxx 按钮皮肤包 from PyQtGuiLib.styles import ButtonStyle # --- Api ButtonStyle.style() ButtonStyle.randomStyle() # 随机样式 ButtonStyle.contrastStyle() # 互补色样式 ButtonStyle.homologyStyle() # 同色调样式()
BuiltStyleDesigner ---> 30% 工具位置 PyQtGuiLib -> styles -> BuiltStyleDesigner -> builtStyleDesigner.py 直接运行这个文件即可 目前支持的 控件 QPushButton ---> 50%
dumpStructure() --> 100% 导入方式 from PyQtGuiLib.core.resolver import dumpStructure dumpStructure(widget :QWidget ,spaceCount=0) # 控件的组成分析函数 # === 注意:在单独使用该函数之前,需要加 app = QApplication(sys.argv) 如果你在一个窗口类里面使用则不需要加
QssStyleAnalysis ---> 100% 完成 导入方式 from PyQtGuiLib.styles import QssStyleAnalysis Api ------ setParent() # 设置父类对象 setQSS(样式字符串) # 设置样式 setQSSDict(字典样式) # 设置样式 appendQSS(样式字符串) # 追加样式 appendQSSDict(字典样式) # 追加样式 toStr() # 返回样式的原始字符串 toDict() # 返回样式的字典 selector(选择器or下标) # 返回QSS对象 --- header() # 返回选择器的名称 --- headerSubdivision() # 返回列表形式的选择器名称 --- body() # 返回属性的原始字符串类型 --- bodySubdivision() # 将原始属性以列表的形式返回 --- bodyToDict() # 将原始属性以字典的形式返回(不带选择器) --- toDict() # 将原始属性以字典的形式返回(带选择器) --- attr(key) # 返回属性的值 --- updateAttr(key,value) # 更新/增加一个属性的值 --- removeAttr(key) # 移除一个属性 removeSelector(选择器or下标) # 移除该选择器的样式 inherit() # 样式传承 (详细用法查看 eg3案例) # ============ 代码案例位置 tests -> test_QssStyleAnalysis 目录下
QssStyleAnalysis --> 测试版 介绍 该链接器 可以在程序运行的过程中,调式控件的样式 导入方式 from PyQtGuiLib.styles import StyleLinker Api --- addQObject(控件对象) addQObjects([控件对象1,控件对象2]) # ---- 例子 self.styleLinker = StyleLinker() # 注意这里创建对象时,不要传递任何参数 self.styleLinker.addQObjects([控件对象1,控件对象2,...]) self.styleLinker.show()
导入方式 from abandonCase.widgets import ( BorderlessWidget, # 无边框QWidget窗口 ) 特性 无边框, 可移动, 可拉伸, 窗口颜色风格变化多样 窗口系列 - --- API介绍 setEnableGColor() # 设置是否启用渐变色 自定义QSS - -- 目前支持的 qproperty - radius --> 圆角 Eg: 7 qproperty - backgroundColor --> 背景颜色 Eg: rgba(165, 138, 255, 200) qproperty - borderWidth --> 边的宽度 Eg: 1 qproperty - borderStyle --> 边框的风格 Eg: solid qproperty - borderColor --> 边框颜色 Eg: rgba(0, 100, 255, 255) qproperty - border --> 边框样式 Eg: "3 solid rgba(0,100,255,255)" qproperty - linearDirection; --> 线性渐变的方向 Eg: "LR" LR: 左->右 RL: 右->左 UD: 上->下 DU: 下->上 LRANG: 左上角->右下角 RLANG: 右下角->左上角 UDANG: 右上角->左下角 DUANG: 左下角->右上角 自定义: [0, 0, 100, 100] 或者[0, 0, w, h] 这里的 w, h 代只窗口当前的宽和高 qproperty - linearColor --> 线性渐变色 Eg: "rgba(142, 144, 69, 255) rgba(176, 184, 130, 255) rgba(255, 255, 255, 255)" qproperty - linear --> 线性渐变 Eg: "LR rgba(142, 144, 69, 255) rgba(176, 184, 130, 255) rgba(130, 184, 130, 255)"; Eg: "[0,0,w,h] rgba(142, 144, 69, 255) rgba(176, 184, 130, 255) rgba(130, 184, 130, 255)";
气泡窗口 ---> 100% 完成 导入方式 from PyQtGuiLib.core import BubbleWidget 气泡窗口 -- BubbleWidget API介绍 # ---类变量 Top # 气泡方向 - 上 Down Left Right # ---API setDirection() # 设置气泡箭头方向 setText() # 设置文字(窗口会随着文字大小而改变) setTrack() # 控件追踪(自动出现在控件的周围) # ----全新的QSS 设置样式例子 BubbleWidget{ qproperty-backgroundColor: rgba(165, 138, 255,200); /*气泡背景颜色*/ qproperty-radius:10; /*气泡圆角大小*/ qproperty-fontSize:12; /*文字大小*/ qproperty-arrowsSize:20; /*气泡小三角的大小*/ qproperty-margin:3; /*文本框个小三角之间的距离*/ }
滑块 ----> 100% 完成 from PyQtGuiLib.core import Slider 信号 valueChanged 滑块 -- Slider API介绍 setValue(int) # 设置进度条的值 setBuffValue(int) # 设置缓冲层的值 setMaxValue(int) # 设置最大值 setHoverIcon(bool) # 设置图标是否具有 hover 效果 # 自定义样式 qproperty-radius 设置圆角 qproperty-bgColor 设置背景颜色 qproperty-buffColor 设置缓冲层颜色 qproperty-flowColor 设置浮动层颜色 qproperty-iconColor 设置图标颜色 qproperty-iconSize 设置图标大小 qproperty-bgHeight 设置背景高度
靠边窗口 ----> 100% 完成 导入方式 from PyQtGuiLib.core import PullOver 靠边窗口 -- PullOver API介绍 pullover() # 设置一个点击显示的按钮,窗口显示的位置,以及缩小后的位置 setEasingCurve() # 设置东西
圆环进度条 ----> 100% 完成 导入方式 from PyQtGuiLib.core.progressBar import CircularBar 圆环进度条 -- PullOver API介绍 # ---信号 valueChange # 进度条变化时触发 # --- 类变量 # 变化的圈 OuterRing # 仅外圈变化 InnerRing # 仅内圈变化 Double # 内外圈一起变化 # 线段的风格 SolidLine # 直线 DashLine # 短线 DotLine # 点 DashDotLine # 短线和点的交替 DashDotDotLine # 短线和两个点的交替 CustomDashLine # 自定义样式(这个必须配合api使用才会生效) # --- Api setText() # 设置文本 setOuterStyle() # 设置外圈风格(线段的风格类变量) setInnerStyle() # 设置内圈风格(线段的风格类变量) setVariableLineSegment() # 设置变化的线段(这里的参数就前3个类变量) setValue() # 设置进度条的值0~100 value() # 返回进度条的值 setOuterDashPattern() # 设置外圈自定义线段样式(必须配合CustomDashLine类变量才生效) setInnerDashPattern() # 设置内圈自定义线段样式(必须配合CustomDashLine类变量才生效) 自定义QSS CircularBar{ qproperty-color:rgba(100,100,100,255); qproperty-fontSize:15; qproperty-outerColor:rgba(100,255,100,255); qproperty-innerColor:rgba(100,255,100,255); }
加载进度条 ----> 99% 导入方式 from PyQtGuiLib.core.progressBar import LoadBar 加载进度条 -- LoadBar API介绍 # ---信号 valueChange # 进度条变化时触发 # --- Api setText() # 设置文本 isHideText() # 设置是否需要显示进度的文字 自定义QSS LoadBar{ qproperty-color:rgba(100,200,100,255); qproperty-fontSize:10; qproperty-outerRadius:20; qproperty-innerRadius:15; }
水球进度条 ----> 100% 完成 导入方式 from PyQtGuiLib.core.progressBar import WaterBar 水球进度条 -- WaterBar API介绍 # ---信号 valueChange # 进度条变化时触发 # --- Api setText() # 设置文本 isHideText() # 设置是否需要显示进度的文字 setBallInterval() # 设置每个数值变化,球产生的个数区间(默认[1,1]) setBallSpeedInterval() # 设置每颗球移动的速度区间(默认[1200,4000]) setBallSizeInterval() # # 设置每颗球生成的大小区间(默认[5,15]) 自定义QSS WaterBar{ qproperty-color:rgba(100,200,100,255); qproperty-fontSize:20; /*qproperty-waterColor:rgba(0,255,0,255); qproperty-waterVatBorderColor:rgba(0,173,0,255); qproperty-waterVatColor:rgba(0,170,255,255);*/ }
轮播组件 ----> 90% 导入方式 from PyQtGuiLib.core import SlideShow 轮播组件 -- WaterBar API介绍 # ---信号 changeWidget # 切换窗口时触发 # ---- 类变量 # 动画方向模式类变量 Ani_Left Ani_Right Ani_Down Ani_Up # --- Api addWidget() # 添加窗口 setCurrentIndex() # 切换到指定窗口 setAutoSlideShow() # 设置自动轮播 removeWidget() # 移除窗口(仅仅只有移除轮播组件,如果需要销毁窗口,需要自己编写代码) setAinDirectionMode() # 设置动画方向模式(例如:上下方向(SlideShow.Ani_Up,SlideShow.Ani_Down)) setButtonsHide() # 设置隐藏/显示左右按钮(默认显示) getButtons() # 返回左右按钮对象(可以通过这个方法来重写左右按钮样式)
线性渐变进度条 ----> 99% 导入方式 from PyQtGuiLib.core.progressBar import GradientBar 线性渐变进度条 -- GradientBar API介绍 # ---信号 valueChange # 进度条变化时触发 # --- Api setValue() # 设置当前进度0-100 setRadius() # 设置圆角半径(默认没有圆角) setBackGroundColor() # 设置进度条底色 setColorAts() # 设置颜色比重和颜色例如 [(颜色比重0-1,QColor()),...] appendColor() # 添加一种颜色 (颜色比重0-1,QColor()) removeColor() # 移除一种颜色 (颜色比重0-1,QColor()) getColors() # 返回所有的颜色和比重 # ----- 注意,这个进度条不提供文字显示,如果需要请自行编写
标题栏 - ---> 99 % 导入方式 from abandonCase.widgets import TitleBar 标题栏 - - TitleBar API介绍 # ---- 类变量 # 标题位置 Title_Left Title_Center # 缩小,放大,关闭 风格 WinStyle MacStyle # --- Api setTitleText() # 设置标题 setTitleColor() # 设置标题颜色 setTitleSize() # 设置标题字体大小 setAllTitle() # 同时设置,标题,颜色,字体大小 setTitlePos() # 设置标题的位置(例如居中: TitleBar.Title_Center) setBtnStyle() # 设置 缩小,放大,关闭 按钮的风格(默认: TitleBar.WinStyle) setAniDuration() # 设置动画的时长(默认300毫秒) setTitleIcon() # 设置图标(默认会同步任务栏的图标) setSyncWindowIcon() # 设置是否同步桌面任务栏的图标 updateTitleSize() # 更新标题栏大小 # ------- 注意: 图标同步任务栏的效果只在win下才有效果 在Mac设置图标方法, 下面这个设置路径是写在运行程序那里的 app = QApplication() app.setWindowIcon(QIcon(路径))
状态栏 - ---> 80 % 测试使用中 导入方式 from abandonCase.widgets import StatusBar 状态栏 - - StatusBar API介绍 # --- Api addText() # 添加文本,可以设置持续多长时间后消失 addButton() # 添加按钮,可以设置一个点击事件 addWidget() # 添加一个窗口 addTime() # 添加时间 setTimeFormat() # 设置时间到格式(默认: %Y-%m-%d %H:%M:%S) 这里所有添加的功能都可以通过 style 参数来设置样式
流式布局 ----> 99% 导入方式 from PyQtGuiLib.core import FlowLayout 流式布局 -- FlowLayout API介绍 # --- Api 流式布局的和其他布局基本没有什么区别 addWidget() removeWidget() # ---------- 注意: 在使用 removeWidget() 移除控件的时候,控件会被删除掉 注意: 流式布局 无法 配合 QScrollArea 使用
滚动栏 ----> 90% 测试使用中 from PyQtGuiLib.core import RollWidget # -- 信号 changed # 左右移动时触发信号,并返回当前子控件 # -- 动画效果 InCurve OutBounce CosineCurve SineCurve 滚动栏 -- RollWidget API介绍 # --- Api setAniEnabled() # 设置动画是否启用(默认开启) setAniDuration() # 设置持续时间(默认200) setAniSpecial() # 设置动画特效(参数就类变量,默认特效:InCurve) addWidget() # 添加控件 buttons() # 返回两个按钮对象
DynamicTLine ----> 90% 测试使用中 导入方式 from PyQtGuiLib.core.lineedit import DynamicTLine # --- Api setPlaceholderText() # 设置提示文字 text() # 获取文本 label() # 返回标题对象 line() # 返回输入框对象
SwitchButton --> 95% 测试使用中 导入方式 from PyQtGuiLib.core.switchButtons import SwitchButton # --- 信号 clicked # 点击时触发 # --- 类变量 Shape_Circle # 圆形 Shape_Square # 方向 # --- Api setDefaultState() # 设置默认状态 state() # 返回当前的状态 setShape() # 设置形状 setBgColor() # 设置背景颜色 参数 格式 {"false":QColor,"true":QColor} setBallColor() # 设置运行球的颜色 格式 {"false":QColor,"true":QColor} # --------
ColorPalette --> 100% 完成 导入方式 from PyQtGuiLib.core import ColorPalette # --- 类变量 Rect # 颜色区域为矩形 Wheel # 颜色区域为圆形 # --- 信号 rgbaChange 颜色改变时触发,返回的元组 (r,g,b,a) nameChange 颜色改变时触发,反正字符串 十六进制颜色名称 clickColor 点击获取颜色按钮时触发,返回的元组 (r,g,b,a) # --- APi getRGBA() # 返回当前RGBA颜色 # ----注意类变量必须在类创建传递才可以 Eg: self.pcolor = PaletteFrame(self,shape=PaletteFrame.Rect)
ListWidget ---> 99% 导入方式 from PyQtGuiLib.core import ListWidget # 类变量 - 添加/移除窗口时的动画特效 OutBounce CosineCurve SineCurve # ----- Api setAniEnabled() # 设置动画是否启用(默认开启) setAniDuration() # 设置持续时间(默认300) setAniSpecial() # 设置动画特效(参数就类变量,默认特效:OutBounce) setItemMinHeight() # 设置item的最小高度(默认:30) addWidget() # 添加 QWidget removeWidget() # 移除窗口 getAllWidget() # 返回所有窗口
mirror of https://github.com/LX-sys/PyQtGuiLib
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
compile_commands.json
Makefile
构建说明
python版本需求
python下qt支持的版本
系统支持
安装方式
项目目录说明
其他贡献者
皮肤包
内置工具 - 样式设计器
控件的组成分析器
QSS 样式解析器(QssStyleAnalysis)
动态样式链接器(StyleLinker)
窗口系列
组件说明
气泡窗口(BubbleWidget)
滑块(Slider)
靠边窗口(PullOver)
圆环进度条(CircularBar)
加载进度条(LoadBar)
水球进度条(WaterBar)
轮播组件(SlideShow)
线性渐变进度条(GradientBar)
标题栏(TitleBar重写中)
状态栏(StatusBar重写中)
流式布局(FlowLayout)
滚动栏(RollWidget)
动态标题输入框(DynamicTLine)
开关按钮
调色版
控件增强
QListWidget 增强 - ListWidget