各位大佬,請問為什么QLineEdit setStyleSheet在樣式單里設定的color顏色后,提示語會比實際淡很多?有什么辦法使它顯示原來的顏色嗎?
QLineEdit *m_editFirst = new QLineEdit(this);
m_editFirst->setStyleSheet("QLineEdit{background:transparent;border-image:url(:/res/lineEditBkg.png);border-style:solid;color:#003DA6;padding-left: +8px;border-color:#232423;font:""SimHei"";font-size:11px;}");
如下截圖:

截圖中的提示語的顏色比實際QLineEdit的樣式單里的color:#003DA6這個顏色淡很多,有什么辦法讓它顯示原來的顏色嗎?
uj5u.com熱心網友回復:
color是設的往里面打字時候顯示的顏色啊,Qt默認的placeholder顏色就是給color加上128alpha的透明度從stylesheet的檔案里看好像沒有可以設定PlaceholderText的地方
你實在要設就用QPalette(看QPalette檔案5.12以前的版本還是寫死的,5.12以后才能設)
uj5u.com熱心網友回復:
好的,我這就試試看,多謝指點了。
uj5u.com熱心網友回復:
剛剛試過QPalette
QBrush myBrush;
QPalette palette;
myBrush = QBrush(QColor(0, 61, 166, 120),Qt::SolidPattern);
palette.setBrush( QPalette::ToolTipText, myBrush);
m_editFirst->setPalette(palette);
不過效果還是一樣,還是很感謝你的解答。
uj5u.com熱心網友回復:
你是用的5.12以后版本嗎,不是ToolTipText是PlaceholderText另外palette跟stylesheet的color可能會有沖突的,盡可能只用一種
還有在初始的時候最好是QPalette palette = m_editFirst->palette()拿到原來的palette 然后再設定
uj5u.com熱心網友回復:
我用的是5.14.1,PlaceholderText 這個不是用來顯示提示語嗎?我在用palette這個時,會把stylesheet的color洗掉。
好吧,我再試試,多謝指點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/278253.html
標籤:Qt
