系列文章目录
QT控件样式系列(一)之QSlider
前言
本篇主要讲解 QPushButton 和 QToolButton 的样式和使用
一、样式表
QPushButton 和 QToolButton 的样式通用的,主要如下,感觉直接贴图就行了,其他属性没用
QPushButton
{
border-image:url(:/images/Button/pushbtn.png);
}
QPushButton:hover
{
border-image: url(:/images/Button/pushbtn2.png);
}
QPushButton:pressed
{
border-image: url(:/images/Button/pushbtn3.png);
padding-left:3px;
padding-top:3px;
}
QPushButton:checked
{
border-image: url(:/images/Button/pushbtn4.png);
}
QPushButton:disabled
{
border-image: url(:/images/Button/pushbtn5.png);
}
二、相关应用
1. 场景一
最近开发过程中,需要设计自定义形状按钮,通过使用 png 透明格式图片贴图,也能实现该功能;但是有个问题,看图说话
当鼠标点击按钮背景透明区域时,按钮也能响应,显然不符合需求,需要做如下处理,通过mask获取自定义形状按钮的有效区域
QPixmap pixmap(qstrImgPath);
pBtn->resize(pixmap.size());
pBtn->setMask(QBitmap(pixmap.mask()));
2. 场景二
QToolButton 设置图标 ico 位置居左/置顶;虽然 QPushButton 也能设置图标 ico(默认居中),但是不能设置其位置
3. 场景三
QPushButton 和 QToolButton 有时需要设置可选中,如下图所示,勾选属性checkable
多个按钮可选时,需要设置独占(同时只能选中一个),有两种方式:勾选属性 autoExclusive 和 添加到按钮组,如下图所示
但是勾选之后不能取消勾选,需要独占的同时并取消勾选可以参考我这篇博客:QT 按钮单选互斥并取消抬起
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)