7

tableWidgetのsetHorizo ​​ntalHeaderLabelsプロパティを使用して、数値ではなく列の名前を指定するにはどうすればよいですか?行を数値として保持したいのですが、列をQListに収集した名前に変更します。

現在、の値を整数に設定しています。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です。これは、 test1、test2、test3ではなくsetColumnCountで渡されるアイテムの数に由来します。

4

2 に答える 2

11

この例では、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 );
于 2012-05-30T18:31:06.990 に答える
6

また、呼び出すui->tableWidget_inputPreview->clear()とラベルが削除されることにも注意してください。

ui->tableWidget_inputPreview->clearContents()ラベルを保持することを検討してください。

于 2014-11-20T15:02:23.800 に答える