QTableWidget 设置列宽样式
一、QTableWidget 有时需要设置表格的列宽样式,设置方式如下:
// 设置竖直表头不可见
ui.tableWidget->verticalHeader()->setVisible(false);
// 设置水平表头不可见
ui.tableWidget->horizontalHeader()->setVisible(false);
// 设置列数
ui.tableWidget->setColumnCount(3);
// 设置所有的列铺满整个Table,每列宽度相同
//ui.tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeMode::Stretch);
//设置第1和第2列为自动缩放填充宽度,第3列的宽度为自适应内容的宽度
ui.tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeMode::Stretch);
ui.tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeMode::Stretch);
ui.tableWidget->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeMode::ResizeToContents);
效果如下图所示:第三列为根据内容自适应大小,前两列均分剩余空间。

二、动态添加或删除对应的行
/*************************************************
* @brief 添加行
*************************************************/
void AddNewRow()
{
QLineEdit* paramNameEdit = new QLineEdit();
QLineEdit* paramValueEdit = new QLineEdit();
QPushButton* btnDelete = new QPushButton("-");
int rowCount = ui.tableWidget->rowCount();
// 在表格的末尾添加新的行
ui.tableWidget->insertRow(rowCount);
// 将控件添加到对应的行列位置上
ui.tableWidget->setCellWidget(rowCount, 0, paramNameEdit);
ui.tableWidget->setCellWidget(rowCount, 1, paramValueEdit);
ui.tableWidget->setCellWidget(rowCount, 2, btnDelete);
// 可设置控件对应的属性,类似于tag,便于后续查找。
//btnDelete->setProperty("rowIndex", rowCount);
connect(btnDelete, &QPushButton::clicked, this, &Demo14_TableWidget::OnDeleteBtnClicked);
}
/*************************************************
* @brief 查找当前被点击的行,删除对应行
*************************************************/
void DeleteSelectedRow()
{
// 查找删除按钮所在的行,并将这一行全部删除掉
QPushButton* btn = qobject_cast<QPushButton*>(sender());
for(int row = 0; row < ui.tableWidget->rowCount(); row++)
{
QWidget *itemWidget = ui.tableWidget->cellWidget(row, 2);
QPushButton* itemBtn = qobject_cast<QPushButton*>(itemWidget);
if(itemWidget == btn)
{
ui.tableWidget->removeRow(row);
return;
}
}
}
如下图,点击 +
按钮将会在表格末尾添加新的行,点击-
按钮会删除改行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码