需求
当我们在使用QT 的QPushButton时,可能有互斥的需求,只能选择其中的一个,且按下后要有不同的背景图片加载。
如:男女的选择,只能二选一,选完后按纽的状态是选中的状态,另外一个按纽恢复成末选中的状态。
在网上找了一张图片如下:
为了验证方便我们使用QT designer.
QButtonGroup
这里我们要用到QButtonGroup这个类,
The QButtonGroup class provides a container to organize groups of button widgets.
这个类提供了一个管理button的容器。
步骤
0、拖两个按键到主UI上,将两者的大小改成切图时图片的大小
1、在QT designer里我们同时选中两个button,右键后—> 指定到按钮组
2、添加资源文件
将上图的图片切割成四张大小一样的png格式的图片,并添加到工程的资源文件下。
3、增加样式表
右键 “男” 按键—> 改变样式表…
QPushButton{
border-image: url(:/manV.png);} //空心图片
QPushButton:checked{
border-image: url(:/man.png);} //黑心图片
右键 “女” 按键—> 改变样式表…
QPushButton{
border-image: url(:/womanV.png);} //空心图片
QPushButton:checked{
border-image: url(:/woman.png);} //黑心图片
4、设置属性 checkable
将两个按键的chechable属性设置成enable,然把其中的一个的checked 属性设置成enable.
备注:
1、QPushButton:checked 为按下后的状态
2、border-image 这个属性图片会随着控件的大小而拉伸。