2012-05-30 23 views
4

我将如何去使用我的tableWidgetsetHorizo​​ntalHeaderLabels财产,而不是数字来指定我的专栏的名字呢?我想将我的行保留为数字,但将我的列更改为我收集的名称,并将其写入QList的Qt setHorizo​​ntalHeaderLabels为tableWidget

现在,我有值行和列设置为整数。当我尝试使用setHorizo​​ntalHeaderLabels时,似乎列的整数值会覆盖我试图指定的列名称,但我不知道如何解决该问题。

这是我如何设定目前其数值只是涉及到整数值我的行和列:

QList<QStringList> columnHeaderList; 

    //--- create the horizontal (column) headers 
    QStringList horzHeaders; 
    ui->tableWidget_inputPreview->setHorizontalHeaderLabels(horzHeaders); 
    horzHeaders << "test1" << "test2" << "test3"; 

    ui->tableWidget_inputPreview->setRowCount(rowList.size() - 1); 
    ui->tableWidget_inputPreview->setColumnCount(columnHeaderList[0].size()); 

for (int row = 0; row < rowList.size(); ++row) { 
    for (int column = 0; column < rowList[row].size(); ++column) { 
     ui->tableWidget_inputPreview->setItem(row, column, new QTableWidgetItem(rowList[row][column])); 
    } 
} 

我需要关于如何正确地从我的的QList取值,并设置一些指导列为那些值为我的tableWidget。出现在我的tableWidget中的列是1,2,3,4,5,6,7,其来自中传递给它的项目数setColumnCount而不是test1,test2,test3

+1

我很困惑......'setHorizo​​ntalHeaderLabels'完全按照你所要求的...它将标题设置为QStringList中的QString。 – Anthony

+0

那么,我正在解析一个文本文件并获取行数的行数。文本文件的第一行被注释并包含我想要使用的列名称。但是,我现在只能得到列数,不知道如何传递实际列名,因为它不断被列数覆盖。在上面的代码示例中,'row'和'column'是整数值。 –

+0

“我现在只得到列数,不知道如何传递实际的列名称,因为它不断被列数覆盖”编辑你的问题以明确你的意思。 – cmannett85

回答

7

在您的示例中,您将setHorizo​​ntalHeaderLabels设置为空列表。设置标题之前一定要填写它。另外,设置列数后设置标题。

这是你想要的排序顺序:

//--- create the horizontal (column) headers 
QStringList horzHeaders; 
horzHeaders << "test1" << "test2" << "test3"; 
ui->tableWidget_inputPreview->setRowCount(rowList.size() - 1); 
ui->tableWidget_inputPreview->setColumnCount(columnHeaderList[0].size()); 
ui->tableWidget_inputPreview->setHorizontalHeaderLabels(horzHeaders); 
+0

你是对的。愚蠢的我......我认为这与我做的事情有点不协调。谢谢! –

+0

感谢您的回答,解决了我的问题! :-) RE'另外,在设置列数之前设置标题。':你的代码不是相反吗?你的意思是'在设置列数之后设置标题**'。 ?至少似乎是它在5.4版本中工作的唯一方式。 – ssc

+0

@ssc哎呀。谢谢。 – cgmb

1

也意识到,调用ui->tableWidget_inputPreview->clear()将删除标签。

相关问题