选择和取消选择Qt上的QRadioButton颜色更改

时间:2016-08-02 08:02:30

标签: qt radio-button

我正在尝试更改所选和取消选择的radiobutton的颜色 QtStylesheet:Qt Stylesheet

但是在这个链接中它只涉及加载图像,但我怎么能改变颜色而不加载图像和改变边框颜色或造型单选按钮

要求附在图片中:RadioButtonRequiredImage

感谢您的支持

谢谢

普利文

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

将样式表设置为下一个适用于我:

QRadioButton:checked{
    background-color: red;
}

QRadioButton:unchecked{
   background-color: black;
}

将样式表设置为QRadioButton ::指标:已选中无效,因为这只会更改指标的设置。

答案 2 :(得分:-1)

如果要在选择单选按钮时更改单选按钮的背景颜色,则应使用插槽和样式表。

我会将你的按钮命名为MyButton。

在你的.h中你会发现:

private IReadOnlyDictionary<RegisterSection, Func<RegisterXml, RegisterGenerationArgs, Task>> CreateSectionActionsDictionary()
{
    return new Dictionary<RegisterSection, Func<RegisterXml, RegisterGenerationArgs, Task>>
    {
        { RegisterSection.RegisterCover, async(reg, args) => reg.Cover = await _sectionGenerators.RegisterCoverGenerator.GenerateAsync(args) },
        { RegisterSection.StudentPersonalData, async(reg, args) => reg.StudentPersonalData = await _sectionGenerators.StudentPersonalDataGenerator.GenerateAsync(args)},

        // Add more generating here ...
    };
}

private async Task GenerateSectionsAsync(RegisterGenerationArgs args, RegisterXml reg)
{
    foreach (var sectionAction in SectionActions)
        if (SectionContainedWithin(args, sectionAction.Key))
            await sectionAction.Value(reg, args);

}

并在.cpp中添加主窗口的设置:

  private :
        QRadioButton MyButton;
    private slots:
        void changeColorMyButton();

您的按钮现已连接到点击的信号,当您点击按钮时,将执行插槽 changeColorMyButton 。您现在可以自定义插槽。

QObject::connect(MyButton,SIGNAL(clicked(bool)),this,SLOT(changeColorMyButton));