如何更改可检查QPushButton子体的背景色? 我使用C++、Qt4.87、VisualStudio来创建基于GUI的应用程序。我必须添加一些可检查的按钮,其中包含带有子标题的标题。我使用github的第三方按钮,请参阅和。选中的QPushButton的默认外观看起来很糟糕(不可读),我想将其背景更改为选中状态。如何更改以下方法以覆盖选中状态下此HTML支持按钮的背景色(当isRichText为true和false时)?我只见过简单的QPushButton子体的示例(没有QTextDocument)

如何更改可检查QPushButton子体的背景色? 我使用C++、Qt4.87、VisualStudio来创建基于GUI的应用程序。我必须添加一些可检查的按钮,其中包含带有子标题的标题。我使用github的第三方按钮,请参阅和。选中的QPushButton的默认外观看起来很糟糕(不可读),我想将其背景更改为选中状态。如何更改以下方法以覆盖选中状态下此HTML支持按钮的背景色(当isRichText为true和false时)?我只见过简单的QPushButton子体的示例(没有QTextDocument),c++,qt,qpushbutton,C++,Qt,Qpushbutton,选中的QPushButton的默认外观看起来很糟糕 这就是为什么Qt在很多年前引入了样式表 要更改按钮的背景色,只需执行以下操作: void MyClass::slotToggleButton(bool enable) { m_pushButton->setStyleSheet(enable ? "background: green;" : ""); } 选中的QPushButton的默认外观看起来很糟糕 这就是为什么Qt在很多年前引入了样式表 要更改按钮的背景色,只需执行以下操

选中的QPushButton的默认外观看起来很糟糕

这就是为什么Qt在很多年前引入了样式表

要更改按钮的背景色,只需执行以下操作:

void MyClass::slotToggleButton(bool enable)
{
    m_pushButton->setStyleSheet(enable ? "background: green;" : "");
}
选中的QPushButton的默认外观看起来很糟糕

这就是为什么Qt在很多年前引入了样式表

要更改按钮的背景色,只需执行以下操作:

void MyClass::slotToggleButton(bool enable)
{
    m_pushButton->setStyleSheet(enable ? "background: green;" : "");
}

方法是使用样式表。正如您在
getStyleOption()
中看到的,当选中与
:On
伪状态对应的按钮时,将设置状态
QStyle::state_On
。对于按钮,伪状态
:checked
也可能适用

QStyle::State_Off 0x00000008用于指示小部件是否未启动 检查过了

0x00000020上的状态_用于指示小部件 检查过了

因此,您的样式表可以如下所示:

RichTextPushButton:checked {
    background-color: red;
}
如果
isRichText
变量是动态属性(QObject::property),则可以进一步限制样式表:

RichTextPushButton[isRichText="true"]:checked {
    background-color: red;
}

方法是使用样式表。正如您在
getStyleOption()
中看到的,当选中与
:On
伪状态对应的按钮时,将设置状态
QStyle::state_On
。对于按钮,伪状态
:checked
也可能适用

QStyle::State_Off 0x00000008用于指示小部件是否未启动 检查过了

0x00000020上的状态_用于指示小部件 检查过了

因此,您的样式表可以如下所示:

RichTextPushButton:checked {
    background-color: red;
}
如果
isRichText
变量是动态属性(QObject::property),则可以进一步限制样式表:

RichTextPushButton[isRichText="true"]:checked {
    background-color: red;
}

为什么不能在发出或信号时简单地更改背景颜色?为什么不能在发出或信号时简单地更改背景颜色?谢谢,我已经尝试过使用您的样式表,但颜色不是纯色(红色与灰色混合)。添加
边框:无解决了它谢谢,我试过使用你的样式表,但是颜色不是纯色(红色和灰色混合)。添加
边框:无解决了它谢谢,我使用了样式表,但我不知道混合方法的可能性(混合自定义
paintEvent
setStyleSheet
)。但是如果我对
richtextputton
使用HTML模式(
isRichText==true
),那么字体样式将被忽略。谢谢,我使用了样式表,但我不知道混合方法的可能性(混合自定义
paintEvent
setStyleSheet
),但如果我对
richtextputton
isRichText==true
)使用HTML模式,那么字体样式将被忽略。