选中和取消选中 Qt 上的 QRadioButton 颜色更改
Posted
技术标签:
【中文标题】选中和取消选中 Qt 上的 QRadioButton 颜色更改【英文标题】:QRadioButton color change on Selected and deselected Qt 【发布时间】:2016-12-07 11:35:25 【问题描述】:我正在尝试将选中和取消选中的单选按钮的颜色更改为 QtStylesheet :Qt Stylesheet
但在此链接中它仅指加载图像但我如何更改它的颜色而不加载图像并更改边框颜色或样式单选按钮
要求附在图片中:
【问题讨论】:
仔细阅读您链接的文档。它指出QRadioButton
支持box model(它有边框)。它还具有background-color
属性。
是的,你是对的背景颜色更改框的颜色,但我无法设置按钮(o)颜色为红色(选择时)和黑色(取消选择)
【参考方案1】:
如果您想在选中单选按钮时更改其背景颜色,您应该同时使用插槽和样式表。
我将把你的按钮命名为 MyButton。
在您的 .h 中,您会发现:
private :
QRadioButton MyButton;
private slots:
void changeColorMyButton();
并在您的 .cpp 中添加主窗口的设置:
QObject::connect(MyButton,SIGNAL(clicked(bool)),this,SLOT(changeColorMyButton));
您的按钮现在已连接到信号 clicked,当您单击按钮时,将执行插槽 changeColorMyButton。您现在可以自定义您的广告位了。
void Mainwindow::changeColorMyButton()
if(this.MyButton.isChecked())
this.MyButton->setStyleSheet("background-color: black");
else
this.MyButton->setStyleSheet("background-color: yellow");
【讨论】:
【参考方案2】:仔细阅读documentation。它描述了您所需要的一切。它甚至几乎described 你的情况,唯一的区别是图像而不是颜色。
您的案例的样式表是这样的:
QRadioButton
background-color: gray;
color: white;
QRadioButton::indicator
width: 10px;
height: 10px;
border-radius: 7px;
QRadioButton::indicator:checked
background-color: red;
border: 2px solid white;
QRadioButton::indicator:unchecked
background-color: black;
border: 2px solid white;
【讨论】:
【参考方案3】:将样式表设置为下一个对我有用:
QRadioButton:checked
background-color: red;
QRadioButton:unchecked
background-color: black;
将样式表设置为 QRadioButton::indicator:checked 不起作用,因为这只会更改指标的设置。
【讨论】:
以上是关于选中和取消选中 Qt 上的 QRadioButton 颜色更改的主要内容,如果未能解决你的问题,请参考以下文章
选中或取消选中DataGridViewCheckBoxColumn上的C#datagridview过滤器