Я создаю таблицу и вставляю в нее строку следующим образом. В таблицу вставляется только одна строка, и это слишком условно, и если условие не выполняется, отображается ошибка. проблема заключается в том, что когда строка вставляется при выполнении условия, тогда другая строка при вставке при повторном выполнении условия не перезаписывает эту строку, а использует следующие два столбца этой строки, сохраняя два предыдущих столбца пустыми.
Пример
первый результат:
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);
}
}
Спасибо за любую помощь заранее