我知道你可以遍歷QTableWidgetItems並改變它們的顏色,但是,如果我使用了setCellWidget並且我有不是QTableWidgetItems的單元格。我找不到一個簡單的setRowColor方法。這似乎應該有,因爲有交替行顏色和什麼的方法。有沒有一個簡單的方法來做到這一點,而不需要對錶的委託進行子分類?有沒有簡單的方法來改變QTableWidget中的行的背景顏色?
修辭問題: 我只是想改變行的顏色,我是否真的需要一個全新的類?
我知道你可以遍歷QTableWidgetItems並改變它們的顏色,但是,如果我使用了setCellWidget並且我有不是QTableWidgetItems的單元格。我找不到一個簡單的setRowColor方法。這似乎應該有,因爲有交替行顏色和什麼的方法。有沒有一個簡單的方法來做到這一點,而不需要對錶的委託進行子分類?有沒有簡單的方法來改變QTableWidget中的行的背景顏色?
修辭問題: 我只是想改變行的顏色,我是否真的需要一個全新的類?
你可以像這樣的樣式表添加到您的QTableWidget的東西:
QTableWidget::item {
background-color: rgb(255, 85, 127);
}
您可以設置這是代碼,以及如下:
QString _CustomStyle = QString(
"QTableWidget::item {"
"background-color: rgba(162, 186, 60);"
"}";
tableWidget->setStyleSheet(_CustomStyle);
用你自己的顏色RGB(明明) 。
我相信,QTableWidget的最簡單的方法設置行的顏色將通過控件項目迭代和使用setData方法來指定背景色,見下文
for (int column=0; column<4; column++)
{
for (int row = 0; row<5; row++)
{
QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg((row+1)*(column+1)));
newItem->setData(Qt::BackgroundRole, (row%2)>0 ? Qt::red : Qt::blue);
ui->tableWidget->setItem(row, column, newItem);
}
}
一個例子,如果你想更簡單,考慮使用QTableView小部件,實現你的模型(我想最簡單的方法是子類QStandardItemModel)並在那裏保持行顏色。實現setRowColor方法或/和插槽來指定數據行的顏色。
希望這會有所幫助,關心
謝謝。但是,我實際上正在設置一個單獨的行的顏色。我相信你的建議會使整個桌子變成彩色。 – Gagege 2011-02-18 22:50:47
我確實最終使用了CSS,因此我會將其標記爲已接受,但只知道我只需要爲單個行着色。非常感謝! – Gagege 2011-07-21 21:16:48