QStandardItem странным образом вставляет строки

Я создаю таблицу и вставляю в нее строку следующим образом. В таблицу вставляется только одна строка, и это слишком условно, и если условие не выполняется, отображается ошибка. проблема заключается в том, что когда строка вставляется при выполнении условия, тогда другая строка при вставке при повторном выполнении условия не перезаписывает эту строку, а использует следующие два столбца этой строки, сохраняя два предыдущих столбца пустыми.

Пример

первый результат:

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);

        }
}

Спасибо за любую помощь заранее


person Mcolorz    schedule 10.07.2012    source источник


Ответы (1)


Я не знаю, решит ли это вашу проблему, потому что в этом примере у вас много неоднозначных ссылок на элементы, но уверены ли вы, что каждый раз очищаете этот QList m_list? Возможно, вы просто накапливаете больше предметов каждый раз.

Попробуйте избавиться от QList+addRow и просто выполните:

m_model->setItem(0,0,item1)
m_model->setItem(0,1,item2)
person jdi    schedule 10.07.2012