如何为选中的 QRadioButton 制作颜色但看起来像标准?
How to make color for checked QRadioButton but looks like standard?
我知道很多人问过这个问题。我也已经在这里搜索过了。最简单的解决方案之一是使用样式表:
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);
}
创建具有以下样式的 QRadioButton:
QRadioButton{
background-color: None;
}
QRadioButton::indicator {
width: 14px;
height: 14px;
border-radius: 9px;
border: 2px solid;
}
创建一个“QLabel”,样式如下:(height-10,width-10)
border-radius: 5px;
background: #0068B5;
并将 Qlabel 放在 QRadioButton 的中心(使用 QTDesigner)
在 PySide/PyQT 中,如果未选中则隐藏 Qlabel,如果选中则显示 Qlabel。
对我有用!!!
我知道很多人问过这个问题。我也已经在这里搜索过了。最简单的解决方案之一是使用样式表:
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 中执行此操作的最佳方法是为每个按钮状态制作单独的图像文件,如 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);
}
创建具有以下样式的 QRadioButton:
QRadioButton{
background-color: None;
}
QRadioButton::indicator {
width: 14px;
height: 14px;
border-radius: 9px;
border: 2px solid;
}
创建一个“QLabel”,样式如下:(height-10,width-10)
border-radius: 5px;
background: #0068B5;
并将 Qlabel 放在 QRadioButton 的中心(使用 QTDesigner)
在 PySide/PyQT 中,如果未选中则隐藏 Qlabel,如果选中则显示 Qlabel。
对我有用!!!