2011-11-28 55 views
0

我想改變一些文字的顏色的在TR()函數

tableModel->setHeaderData(2, Qt::Horizontal, tr("<font color=red><i>Org. Name</i></font>")); 

一個TR()function.I在想這將有可能改變字體顏色設置字體顏色? 。

回答

1

是的,整個HTML字符串將被提供翻譯,包括標記。如果你想讓翻譯者弄亂HTML,你的方法就行了。通常是不希望翻譯惹(也可能打破)HTML標記,一會又用這樣的:

QString::fromLatin1("<font color=red><i>%1</i></font>").arg(tr("Org. Name")) 

即只標記整個html字符串的實際翻譯文本。

2

我不認爲提供HTML字符串會改變文本的出現,即使它起作用,也不是將內容與樣式混合的最佳方法。您應該使用stylesheets並更改QTableViewheader view的顏色。

QString styleSheet = "QHeaderView::section {" 
         "color: red;" 
         "background-color: black; }"; 

tableView->horizontalHeader()->setStyleSheet(styleSheet); 
+0

由於all.It似乎它去,因爲繼承QHeaderView和重新實現paint()方法是需要什麼比我想象採取更多的工作。 – Gandalf