QLabel setPalette()改變字體顏色無效,怎么回事啊?
QLabel *temp_lb = new QLabel("Test", this);
temp_lb->setContentsMargins(9, 0, 9, 0);
temp_lb->setAutoFillBackground(true);
QPalette palette;
palette.setColor(QPalette::WindowText, QColor("#DAE6FF"));
temp_lb->setPalette(palette);
怎么感覺QPalette 這東西這么不好用啊,但這里不能用QSS,必須用這個啊
uj5u.com熱心網友回復:
單獨寫程式又可以。。。那么setPalette() 在什么情況下會無效? 設定了setStyleSheet吧?我沒有設qss呀
uj5u.com熱心網友回復:
是不是你對后續對父類也進行了 設定,導致了 子類顏色不對啊。uj5u.com熱心網友回復:
父類沒有設定palette,但有設定 qss, 但我取消設定父類的 qss 也不行
QLabel setPalette(QPalette::Background, Qt::red) 設定背景色起作用,設定文字顏色不起作用,奇怪
uj5u.com熱心網友回復:
設定文字顏色不能用 setPalette把uj5u.com熱心網友回復:
QPalette pe;
pe.setColor(QPalette::WindowText, Qt::red);
QLabel *label = new QLabel(this);
label->setPalette(pe);
label->setText("Hello World");
uj5u.com熱心網友回復:
恩恩,我就是這樣做的,但無法改變文字顏色,背景色卻可以
uj5u.com熱心網友回復:
直接設定setStyleSheet不就行了?uj5u.com熱心網友回復:
不想把 qss 寫在代碼里...
uj5u.com熱心網友回復:
QLabel *temp_lb = new QLabel("Test", this);
temp_lb->setContentsMargins(9, 0, 9, 0);
temp_lb->setAutoFillBackground(true);
QPalette palette;
palette.setColor(QPalette::WindowText, QColor("#DAE6FF"));
temp_lb->setPalette(palette);
qDebug() << temp_lb->palette().windowText().color();
設定以后,把顏色列印出來是對的,但顯示就始終是黑色...
uj5u.com熱心網友回復:
qss優先級是不是高啊uj5u.com熱心網友回復:
怎么看呢?怎么改
uj5u.com熱心網友回復:
文字用font吧,然后呼叫setfont就會生效uj5u.com熱心網友回復:
setFont 是改字體大小、粗細這些,不管顏色的
uj5u.com熱心網友回復:
有一個font-color可以配顏色啊
uj5u.com熱心網友回復:
文字用font吧,然后呼叫setfont就會生效
setFont 是改字體大小、粗細這些,不管顏色的
有一個font-color可以配顏色啊
uj5u.com熱心網友回復:
文字用font吧,然后呼叫setfont就會生效
setFont 是改字體大小、粗細這些,不管顏色的
有一個font-color可以配顏色啊
你是說 QFont 嗎? 沒有設定顏色的函式啊
uj5u.com熱心網友回復:
我說的是設定qss里面有一個font-coloruj5u.com熱心網友回復:
我說的是設定qss里面有一個font-color
呃……我前面說了不想在代碼里寫 qss,而且顏色是動態的,數量不固定,難以用qss,所以才想用 palette
uj5u.com熱心網友回復:
你試試將painter和palettw一起使用。uj5u.com熱心網友回復:
我也出現了你這個bug 那個設定pattle控制元件的任何父視窗在設計師里不能有一點點樣式,我最后手動樣式設在了代碼里才有用,絕對是bug,我另外一個專案好好的,就這專案設計師寫一點樣式就不行。轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/20345.html
標籤:Qt
