0

私はテーブルを作成し、このように行を挿入しています。テーブルに挿入される行は1つだけで、条件が多すぎて、条件が満たされない場合はエラーが表示されます。問題は、ある行が条件を満たす条件で挿入されたときに、他の行が再び満たされている条件で挿入された場合、その行を再書き込みせず、その行の次の2列を使用して前の2列を空に保つことです。

最初の結果:

2こんにちは

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

        }
}

事前に助けてくれてありがとう

4

1 に答える 1

0

この例ではメンバー参照があいまいなため、これで問題が解決するかどうかはわかりませんが、その後は毎回そのQList m_listをクリアしてもよろしいですか?おそらく、あなたは毎回より多くのアイテムを蓄積しているだけです。

QList + addRowを削除して、次のようにしてください。

m_model->setItem(0,0,item1)
m_model->setItem(0,1,item2)
于 2012-07-10T15:48:36.543 に答える