顏色

2013-11-04 34 views
1

的Qt tableWidget細胞我就死在試圖設置背景色的Qt tableWidget。我非常希望你的幫助。 這是我的代碼。顏色

QColor colorLive(Qt::red); 
ui->tableWidget->setRowCount(14); 
ui->tableWidget->setColumnCount(14); 
for (int g = 0; g < 15; ++g) 
{ 
    for (int i = 0; i < 15; ++i) 
    { 
     ui->tableWidget->setItem(g, i, new QTableWidgetItem); 
     ui->tableWidget->item(g, i)->setBackgroundColor(colorLive); 
     // error here 
    } 
} 

應用輸出顯示下一個:The program has unexpectedly finished. 但是,如果我通過 ui->tableWidget->item(0, 0)->setBackgroundColor(colorLive); 改變的代碼錯誤行,然後它爲一個單元。但是,實際上,我需要設置所有單元格或其中的一部分。如果你能幫助我,我將非常感激!

+0

好,我發現了這件事。它的工作原理如下: int g = 0; while(g!= 14)int i = 0; (!I = 14) 而{ QTableWidgetItem *的newitem =新QTableWidgetItem(TR( 「%1」)的Arg( 「」)); ui-> tableWidget-> setItem(g,i,newItem); ui-> tableWidget-> item(g,i) - > setBackgroundColor(colorDeath); // ++ i; } ++ g; } – code4fun

回答

0

你超越你的行和列數。您將columnCountrowCount設置爲14.這表示有效範圍是0-13。但是在你的for循環中,你正在經歷0-14行和0-14列。第14行和第14列無效。

這應該修復它:

int rows = 14; 
int columns = 14; 
QColor colorLive(Qt::red); 
ui->tableWidget->setRowCount(rows); 
ui->tableWidget->setColumnCount(columns); 
for (int g = 0; g < rows; ++g) 
{ 
    for (int i = 0; i < columns; ++i) 
    { 
     ui->tableWidget->setItem(g, i, new QTableWidgetItem); 
     ui->tableWidget->item(g, i)->setBackgroundColor(colorLive); 
    } 
} 
+0

哦,上帝,謝謝,我認爲它是一樣的數組。這就是我放置14號的原因。謝謝! – code4fun

+0

@undermorrk但是一個數組的行爲方式是一樣的:o。 'int array [14];'也會有0-13個範圍內的14個元素。但無論如何,如果答案解決了你的問題,你應該接受它:) – thuga