程序启动时初始化界面,根据数据库查询个数来动态显示QTableWidget行数并添加表头序号;
//设置序号
nRows = m_pUiSysManagement->tableWidgetUserTable->rowCount();
for(int idx = 0; idx < nRows; idx++)
{
m_pUiSysManagement->tableWidgetUserTable->verticalHeaderItem(idx)->setText(tr("%1").arg(idx+1));
}
添加一条数据时动态添加一行;
m_userCount = query.size();
m_pUiSysManagement->tableWidgetUserTable->setRowCount(m_userCount); //设置行数为数据库中检索出来的用户个数
for(int idx = 0; idx < (m_pUiSysManagement->tableWidgetUserTable->rowCount()); idx++)
{
m_pUiSysManagement->tableWidgetUserTable->verticalHeaderItem(idx)->setText(tr("%1").arg(idx+1));
}
但这样会在for里添加表头序号是报异常导致程序挂掉!最后测试添加数据时只设置行数,去掉for循环正常了,而且表头序号还会自己添加上,并且证实setRowCount时并没有调用init函数,虽然程序正常了,但还是搞不懂为什么!
QTableWidget 还有一个insertRow(int row)函数,但这是个槽函数,且不能用在多线程中,就没有去研究它。