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); //设置表头