如何为选中的QRadioButton制作颜色,但看起来像标准?
问题描述:
我知道很多人问这个问题。我也在这里搜索过它。最简单的一个解决方案是用样式表:如何为选中的QRadioButton制作颜色,但看起来像标准?
QRadioButton {
background-color: rgb(252,254,252);
color: black;
}
QRadioButton::indicator {
width: 11px;
height: 11px;
border-radius: 5px;
}
QRadioButton::indicator::unchecked{
border: 1px solid;
border-color: rgb(132,132,132);
border-radius: 5px;
background-color: white;
width: 11px;
height: 11px;
}
QRadioButton::indicator::checked{
border: 3px solid;
border-color: white;
border-radius: 6px;
background-color: rgb(0,116,188);
width: 7px;
height: 7px;
}
但如果我这样做的方式,结果是这样的 (该按钮只有白色的圆边和蓝圆内)。但是,我们可以将它们之外的黑色边框像标准选中的单选按钮 一样吗? (黑色边框 - >白色边框 - >蓝色圆形)。我们可以在Qt中做到吗?
答
忘掉试图在Qt中设置复选框或单选按钮的风格 - 这是一场噩梦,你永远不会真的得到你想要的结果。在Qt来做到这一点的最好办法是使个人图像文件每个按钮状态,就像在Style Sheet Examples:
QRadioButton::indicator
{
width: 13px;
height: 13px;
}
QRadioButton::indicator::unchecked
{
image: url(:/images/radiobutton_unchecked.png);
}
QRadioButton::indicator:unchecked:hover
{
image: url(:/images/radiobutton_unchecked_hover.png);
}
QRadioButton::indicator:unchecked:pressed
{
image: url(:/images/radiobutton_unchecked_pressed.png);
}
QRadioButton::indicator::checked
{
image: url(:/images/radiobutton_checked.png);
}
QRadioButton::indicator:checked:hover
{
image: url(:/images/radiobutton_checked_hover.png);
}
QRadioButton::indicator:checked:pressed
{
image: url(:/images/radiobutton_checked_pressed.png);
}
好了,我没想到这个解决方案。那太棒了。谢谢你,投票!祝你今天愉快! :) – gnase