🎨 基于Qt小部件的实现😊
🎨 Qt widgets-based implementation of the Material Design specification.😊
- 按钮颜色动画
- 图标与文字分离
- 你可以在初始化的时候,为按钮添加文字和图标
- 如果你需要修改,按钮样式,你需要到MyFrame.ui()中修改样式表。当然,你也可以在实例化之后,设置样式表
- 注意:QFrame和QPushBUtton的背景颜色要一致,同时也要修改MyFrame._color_1的颜色
- 当然,如果你觉得麻烦,那就别改🤣。或者写一个方法,在初始化的时候,提取样式表的颜色,然后再配置到MyFrame._color_1
- 在MyFrame.lableAnimation(),你可以修改动按钮的变化颜色
- 功能栏向两中间伸缩
- 伸缩后,按钮的文字会消失
- 收缩后,按钮会显示出圆角,而不是左圆右方
- 在main.config_init(),可以修改变化后的伸缩栏宽度和按钮宽度,以达到更加美观的效果😌
你可以在MyPushButton.animationConfig()配置动画参数同时,你可能还需要修改字体的大小,在MyPushButton.ui()里面此外,你甚至可以尝试把PushButton换掉,把这个样式添加到别的组件上✨在初始化时,你需要传入两个参数,一个是geometry(按钮的大小和位置),一个是minSize(按钮的最小尺寸)
- styleSheet参数说明📃
- R-font-color: 配置按钮字体颜色
- R-full-color: 配置按钮的填充颜色
- 如果需要为按钮添加文字或者图标,可以直接调用以下方法进行配置
- RWavyButton.setIcon(): 设置按钮图标
- RWavyButton.setFont(): 配置字体大小
- RWavyButton.setText(): 设置按钮文字内容
同样的,在配置完样式后,需要调用RWavyButton.setStyleSheetConfig()来使之生效
# 按钮样式配置
btn = RWavyButton(w)
btn.setGeometry(QRect(290, 280, 110, 35))
btn.setStyleSheet(u"#RWavyButton{"
" background-color: rgb(46, 22, 177);"
" border-radius:10px;" # 设置圆角
" R-full-color:rgb(255, 89, 0);" # 设置填充颜色
" R-font-color:rgb(255, 255, 255);" # 设置字体颜色
"}"
)
# 设置字体
font = QFont()
font.setPointSize(10)
btn.setFont(font)
# 填写文字内容
btn.setText(" 会变色喔")
# 设置图标
icon = QIcon()
icon.addFile(u":/\u56fe\u6807/\u56fe\u6807/\u4fdd\u5b58.png", QSize(24,24), QIcon.Normal, QIcon.Off)
btn.setIcon(icon)
# btn.setStyleSheetConfig()
- styleSheet参数说明📃
- color:字体颜色
- Rborder-width:边框大小
- 在初始化之后,你需要设置按钮的geometry参数
- RPushButton.createGradient()中,你可以修改流光的颜色🎊
- 你可以在RPushButton.animationConfig()种修改定时时间,来控制流光的速度
在styleSheet(样式表),你可以通过设置Rborder-width,来配置按钮边框的宽度(流光的宽度)配置完之后,需要调用RPushButton.setStyleSheetConfig(),使配置生效❗这个代码是经过优化的,可以直接调用,直接配置样式表和geometry就可以啦
老样子,你可以在styleSheet修改样式,之后需要调用DynamicBorderFrame.setStyleSheetConfig()使样式生效- styleSheet参数说明📃
- Rcolor_1:流光的颜色1
- Rcolor_2:流光的颜色2
- border-radius:卡片圆角大小
- Rborder-width:卡片的边框宽度
- background-color:外层背景颜色
- inside-background-color:里层背景颜色
- 展示了发散按钮容器的使用方法✨
- 参数说明📃
- RExpandBox.locatorBoxSize: 定位组件的尺寸
- RExpandBox.expandBoxWidgetSize: 伸缩组件的尺寸
- RExpandBox.locatorBoxWidgetWidth: 定位按钮的宽度
- RExpandBox.animationDuration: 每个按钮的动画的时间
- RExpandBox.locatorBoxWidgetSpacing: 定位按钮间的间隔
- RExpandBox.expandBoxWidgetWidth: 伸缩组件内按钮的宽度
- RExpandBox.expandBoxWidgetSpacing: 伸缩组件内按钮的间隔
- 方法说明
- RExpandBox.addWidget():添加组件
- RExpandBox.setConfig():使配置生效
配置完RExpandBox后,需要调用RExpandBox.setConfig()使配置生效❗- styleShell中按钮的圆角大小需要为按钮宽度的二分之一倍❗
- 实现了一个简单的网格布局器
- RGridLayout的padding自适应
- 参数说明📃
- RGridLayout.spacing: RGridLayout内每个小格子的间距
- RGridLayout.grid_width: RGridLayout内每一个小格子的宽度
- RGridLayout.grid_height: RGridLayout内每一个小格子的高度
- 实例化 RGridLayout 的时候,需要传入布局器的尺寸
- 通过RGridLayout.addWidget(w:QWidget,row: int,col: int),你可以添加组件到布局器中
- 实现了一个导航栏,用于指示当前显示的图片位置
changeColor_signal
用于触发SliderNav.changeColor()
改变颜色changePixmap_signal
用于触发切换图片。目前,该功能还未开发
- 实现了用于轮播图两侧切换图片的按钮
PixmapLabel
继承自QLabel
,用于显示图片PixmapLabel
可以显示圆角图片,解决了图片覆盖QLabel
圆角的问题PixmapLabel
可以使图片适应于PixmapLabel
的尺寸,而且可以尽可能多地保留图片信息
- 参数说明📃
- SlideshowWidget.timer_interval: 图片展示时间
- SlideshowWidget.animation_time: 动画过度时间
- SlideshowWidget.lr_widget_size: 两侧图片的尺寸
- SlideshowWidget.middel_widget_size: 中间图片的尺寸
SlideshowWidget.addPixmap()
:添加待显示的图片SlideshowWidget.animation_time
和SlideshowWidget.timer_interval
需要到SlideshowWidget.__animationParmas()
内自行配置❗
- 参数说明📃
- editer_height: 输入框的高度
- 方法说明📃
- RInput.setParams(): 配置必要的参数
- RInput.setFontToEditer(): 配置输入框的字体样式
- RInput.setTextToPlaceholder(): 配置提示框的字体样式
- 在配置组件高度和输入框高度的时候,记得给提示框留下充足的显示空间❗
...
- Email:2731491939@qq.com
- WeChat:Roast_71
- csdnBlog:Rev_RoastDuck
本内容仅供学习与交流,禁止用于任何形式的商业用途