我正在创建一个表,并像这样插入其中的行。表中只插入一行,这太有条件了,如果不满足条件,就会显示错误。问题是,当一行在满足条件下插入时,另一行在再次满足条件时不会重写该行,而是使用该行的下两列,使前两列为空。
示例
第一个结果:
2你好
第二个结果:
3 hello
代码
void searchWindow::TextReturn()
{
int id = (text->text()).toInt();
map<int,QString>::iterator itt;
itt = appWindow::dataa.find(id);
if(itt != appWindow::dataa.end()) //returns 1 if we found something
{
m_mode1 = new QStandardItemModel(0,2,this);
m_mode1->setHorizontalHeaderItem(0, new QStandardItem(QString("ID")));
m_mode1->setHorizontalHeaderItem(1, new QStandardItem(QString("DATA")));
m_items << new QStandardItem((QString("%1").arg(id)));
m_items << new QStandardItem((*itt).second);
m_mode1->appendRow(m_items);
m_tablee->update();
text->setText("");
m_tablee->setModel(m_mode1);
}
else
{
m_mode1 = new QStandardItemModel(0,2,this);
m_mode1->setHorizontalHeaderItem(0, new QStandardItem(QString("SEQUENCE")));
m_mode1->setHorizontalHeaderItem(1, new QStandardItem(QString("MESSAGE")));
m_msgBox = new QMessageBox();
m_msgBox->setWindowTitle("Alert");
m_msgBox->setText("INVALID ID ENTERED");
m_msgBox->show();
text->setText("");
m_tablee->setModel(m_mode1);
}
}
感谢您提前为提供帮助
我不知道这是否能解决你的问题,因为在这个例子中你有很多不明确的成员引用,但你确定之后每次都会清除QList m_list吗?可能你只是每次都在积累更多的物品。
试着去掉QList+addRow,只做:
m_model->setItem(0,0,item1)
m_model->setItem(0,1,item2)