Qt|控件 QPushButton 讲解
前提
按钮分为了四种状态:常态、聚焦、按下、禁用
前一段时间更新了 MFC 框架下 CButton 的自绘。因为 MFC 框架下的按钮限制性很高,所以只能由自绘实现各种风格,但是 QT 框架完美的解决了这个问题,我们只需要了解如何调用,就可以展示炫酷的画面了,接下来我们来讲解下如何使用吧!
有需要的或者是对控件风格不熟悉的赶紧收藏起来!以备不时之需~
功能
1:背景颜色值改变
我们可以对四种状态设置一个背景颜色值,也可以根据不同状态设置不同的颜色值。
主要是根据我们实际的开发需求来定的。
情况 1:四种状态使用一种背景颜色值
QSS 方式:
情况 2:每个状态的颜色值不一样
QSS 方式:
2:背景图片改变
与上述颜色值更改的方式一致,只是将颜色值变成了图片。
情况 1:四态使用一种背景图片
QSS 方式:
情况 2:每个状态的背景图不一致
QSS 方式:
3:文本对齐方式
QPushButton 这个控件的对齐方式有点不一样哦~是不可以使用"setAlignment"这个函数进行设置的,只能通"过 setStyleSheet"进行 QSS 风格设置,这一点大家需要记住啦!
按钮中字体的对齐方式:left、right、top、bottom、center
左对齐
QSS:text-align:left;
右对齐
QSS:text-align:right;
居中
QSS:text-align:center;
内边距对齐
情况 1:文本左对齐时,内边距设置
QSS:padding-left:10px;
情况 2:文本右对齐时,内边距设置
QSS:padding-right:10px;
4:内部显示图片
图片在右侧显示
显示效果,以文本右侧显示图片为例子,如下所示:
QSS 方式:
说明:
1:在图片时,为什么使用 background-image 与 2.2 中的方式为何不一致?
因为 border-image 设置背景时,图片是拉伸填充的,在此处不需要。
2:background-repeat 说明
该属性定义了图像的平铺模式。背景图像的位置是根据 background-position 属性设置的。如果未规定 background-position 属性,图像会被放置在元素的左上角。
3:background-position 说明
位置关键字可以按任何顺序出现,只要保证不超过两个关键词。
如果只出现一个关键字,则认为另一个关键字是 center。
4:background-origin 说明
相对于内容框来定位背景图像。
属性值:border(边框)、padding(填充)、context(内容)
图片在顶部显示,QSS 方式:
图片左侧显示,当图片在左侧时,相当于按钮的图标,则使用下面这种方式实现。
5:文本底部添加下划线
对于这个功能,很多情况下都会用到,前一阵子我也使用到了这个功能,索性分享给大家吧~
首先先看一下展示效果
下划线的长度是整个 QPushButton 的长度。
QSS 的选中效果
QSS 的未选中效果
总结
版权声明: 本文为 InfoQ 作者【中国好公民st】的原创文章。
原文链接:【http://xie.infoq.cn/article/b169d06caa195cd4ef8e94d47】。文章转载请联系作者。
评论