我有一个看起来像这样的表:
| column1 | column2 | column 3
-------------------------------------------
1 | name1 | value1 | class1
2 | name2 | value2 | class2
3 | name3 | value3 | class3
我已将表窗口小部件定义为:
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableWidget->setColumnCount(3);
ui->tableWidget->setHorizontalHeaderLabels({"column1", "column2", "column3"});
ui->tableWidget->setItem(currentRow, 0, new QTableWidgetItem(name));
ui->tableWidget->setItem(currentRow, 1, new QTableWidgetItem(values.toString()));
ui->tableWidget->setItem(currentRow, 3, new QTableWidgetItem(class));
我希望我的桌子看起来像这样:
| column1 |column2| column 3
-------------------------------------------
1 | name1 |value1 | class1
2 | name2 |value2 | class2
3 | name3 |value3 | class3
如何才能仅使column2
(及其值)适合其内容?
答案 0 :(得分:0)
您可以通过将列索引作为第一个参数的setSectionResizeMode
重载来实现:
ui->tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Fixed);
然后,在插入所有项目之后,在固定大小的列上调用resizeColumnToContents
以调整其宽度。
这里是完整的代码:
ui->tableWidget->setColumnCount(3);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Fixed);
ui->tableWidget->setHorizontalHeaderLabels({"column1", "column2", "column3"});
// Insert items here...
ui->tableWidget->resizeColumnToContents(1);
您可以在GitHub中找到完整的示例。