QTableWidget 小习

本文介绍了一种使用QTableWidget时出现的空行问题及其解决方案。通过在初始化时设置正确的行数,可以有效避免空行的出现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QTableWidget  是qt 中常用的控件,下面是一些自己在做项目遇到的一些问题,记录一下,前车之鉴啊!

一. 空行问题

我用QTableWidget  来显示从数据库中查到的数据信息,每次显示前我会做如下操作:

baseInfoDialog->ui.tableWidget_KS_selected->clear();//清空
	int lastCol = baseInfoDialog->ui.tableWidget_KS_selected->rowCount();//获取当前表中的行数
	for (i = 0; i < lastCol; ++i)
	{
		baseInfoDialog->ui.tableWidget_KS_selected->removeRow(i); //删除所有行
	}
	baseInfoDialog->ui.tableWidget_KS_selected->setColumnCount(2);//设置新表的列数
	QStringList header; 
	header.append("One"); 
	header.append("Two"); 
	baseInfoDialog->ui.tableWidget_KS_selected->setHorizontalHeaderLabels(header); //设置表头


这样跑着跑着就会在开头空出2行空行,百思不得其解,后来在初始化的时候加入行数的设置,问题没有在出现,修改后的代码如下:

baseInfoDialog->ui.tableWidget_KS_selected->clear();//清空
int lastCol = baseInfoDialog->ui.tableWidget_KS_selected->rowCount();//获取当前表中的行数
for (i = 0; i < lastCol; ++i)
{
baseInfoDialog->ui.tableWidget_KS_selected->removeRow(i); //删除所有行
}
baseInfoDialog->ui.tableWidget_KS_selected->setColumnCount(2);//设置新表的列数
baseInfoDialog->ui.tableWidget_KS_selected->setRowCount(0);//设置行数
QStringList header; 
header.append("One"); 
header.append("Two"); 
baseInfoDialog->ui.tableWidget_KS_selected->setHorizontalHeaderLabels(header); //设置表头

问题虽然解决了,但其中缘由还不太清晰,还请专业人士多多指导!

QTabWidget是Qt库中的一个控件,用于创建可以平铺显示多个独立窗口的选项卡界面。如果你想定制每个QTableWidget(表格控件)的表头样式,你可以通过以下几个步骤操作: 1. **获取QTableWidget实例**: 在QTabWidget内部,你需要找到对应的QTableWidget,并将其存储在一个变量中,例如`tableWidget`。 ```python QTableWidget *table = tabWidget->findChild<QTableWidget*>("your_table_name"); ``` 替换"your_table_name"为你实际的表格控件名字。 2. **设置表头样式**: 使用`setHorizontalHeaderItem()`函数设置表头单元格,然后使用`setSectionResizeMode()`设置列的调整模式。你可以自定义字体、颜色、背景色等属性,例如: ```python // 设置表头文字 QTableWidgetItem *headerItem = new QTableWidgetItem("Column Header"); table->horizontalHeader()->setItem(0, headerItem); // 设置表头样式(这里仅作示例,具体样式请参考Qt文档) QHeaderView *headerView = table->horizontalHeader(); headerView->setFont(QFont("Arial", 14)); // 设置字体 headerView->setStyleSheet("background-color: lightgray; color: black;"); // 自定义背景和前景色 headerView->setSectionResizeMode(QHeaderView::Stretch); // 列自动伸缩 ``` 3. **应用到所有表头**: 如果你想让这个样式应用到所有的QTableWidget,可以遍历QTabWidget的所有子部件,查找并设置相应的样式。 ```python foreach (QWidget *child, tabWidget->children()) { if (child->isWidgetType<QTableWidget>()) { QTableWidget *subTable = static_cast<QTableWidget*>(child); // 重复上述设置样式的过程 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值