2016-11-18 37 views
0

我知道很多人问这个问题。我也在这里搜索过它。最简单的一个解决方案是用样式表:如何为选中的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; 
} 

但如果我这样做的方式,结果是这样的checked button (该按钮只有白色的圆边和蓝圆内)。但是,我们可以将它们之外的黑色边框像标准选中的单选按钮 standard一样吗? (黑色边框 - >白色边框 - >蓝色圆形)。我们可以在Qt中做到吗?

回答

3

忘掉试图在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); 
} 
+0

好了,我没想到这个解决方案。那太棒了。谢谢你,投票!祝你今天愉快! :) – gnase

相关问题