2011-04-22 65 views
1

我反對問這個貌似n00b的問題,但是我最近爲完成這項任務所做的努力都失敗了。這是我已經嘗試過的東西,都失敗了!難道我的OpenSuse 11.3默認設置甚至適用於我的Qt應用程序的系統範圍設置?如何在QTextEdit中設置自定義文字顏色?

//I have some QTextEdit created in QDesigner -- call it myQEdit 
QString str = "some content i want to display" 
//trial one: 
QString my_html_template = "<html><head></head><body style=\"color:__color__;\">__content__</body></html>" 
myQEdit->document()->setHtml(my_html_template.replace("__color__","#99ff00").replace("__content__",str)); 

失敗了,那我就......

//trial two: 
myQEdit->setDocument(new QTextDocument(str,this)); 
myQEdit->document()->setDefaultStyleSheet(" body { color:#99ff00;}"); 

我甚至嘗試設置!important CSS標誌的color值i傳似:

但這種失敗呢!

myQEdit->document()->setDefaultStyleSheet(" body { color:#99ff00 !important;}"); 

所以我決定把我的QTextEdit從設計師本身的顏色 - 通過設置QTextEdit的原始HTML內容的選項,指定我的自定義顏色。雖然我沒有以編程方式更改內容,但使用了所需的顏色。但此刻我設置自定義的內容是這樣的:

myQEdit->setDocument(new QTextDocument(str)); 

我失去我會從QDesigner設置在QTextEdit顏色設置。那麼達成目標的正確方法是什麼?我知道這是可以做到某種方式......

最後: 使用提示從下面的接受的答案後,這裏是我是如何解決它:

myQEdit->setDocument(new QTextDocument(str,this)); 
QPalette pal; 
pal.setColor(QPalette::Text, QColor::fromRgb(0,150,0)); 
myQEdit->setPalette(pal); 

回答

4

我有成功通過更改調色板更改文本顏色QLabelQPlainTextEdit

QPalette pal; 
pal.setColor(QPalette::Window, bgColor); 
pal.setColor(QPalette::WindowText, fgColor); 
pal.setColor(QPalette::Text, fgColor); 
mylabel->setPalette(pal); 
+0

立即像魅力一樣工作!謝謝(反映你的問題) – nemesisfixx 2011-04-22 17:25:10

相關問題