我發現了同樣的問題還有: how to change QCheckBox text label color in Qt?更改QCheckBox文本顏色
但不幸的是,它沒有一個爲我工作在Mac上。
在Linux和Windows上,默認情況下,QWidget(QLabel,QCheckBox,QRadioButton)的文本是白色的。 在Mac上,它是黑色的。不幸的是在我的屏幕上這個問題的原因與文本是不可讀的(我有黑色背景)..
我已經得到的QCheckBox類,所以在構造函數中您將獲得:
class MPUBLIC MythCheckBox: public QCheckBox
{
Q_OBJECT
public:
MythCheckBox(QWidget *parent = 0, const char *name = "MythCheckBox")
: QCheckBox(parent)
{
setObjectName(name);
#ifdef Q_OS_MAC
// setStyleSheet("QCheckBox { color : white; }; QCheckBox::indicator { color:black; }");
QPalette p = palette();
p.setColor(QPalette::WindowText, Qt::white);
setPalette(p);
#endif
};
如果我使用的樣式表所示:
setStyleSheet("QCheckBox { color : white; }; QCheckBox::indicator { color:black; }");
然後我的文字是白色的,因爲我想,但對號本身變得不可見...
如果我用第2種方法:
QPalette p = palette();
p.setColor(QPalette::WindowText, Qt::white);
setPalette(p);
複選框文本確實變成了白色,並且複選標記本身仍是黑色,它看起來像是有效的。 但是,如果我將焦點移至QCheckBox,文本將再次變爲黑色,並且它將永遠保持黑色。
我也試過:
QPalette p = palette();
p.setColor(QPalette::Active, QPalette::WindowText, Qt::white);
p.setColor(QPalette::Inactive, QPalette::WindowText, Qt::white);
setPalette(p);
你要知道,我只得到在mac上這個怪異的行爲;如果我在Linux中嘗試相同的代碼(使用不同的顏色,如紅色),那麼所有的行爲都像我想要的那樣。
關於如何更改QCheckBox文本的顏色以及僅文本的任何想法?
您可以嘗試指定必須使用新樣式表修改小部件的哪個部分。例如,如果您的複選框名稱爲MythCheckBox_0,則可以調用MythCheckBox_0.setStyleSheet(「#MythCheckBox_0 {color:white;}」);或者類似的東西。 – Ilya
嘗試像你一樣的樣式表,但沒有重新定義QCheckBox :: indicator'setStyleSheet(「QCheckBox {color:white;}); css;' –
QDesigner是否在你手邊?如果我遇到調色板問題顏色我使用它來簡單地玩弄顏色,看看是否解決了我的問題 – Bowdzone