行的QTableView问题

时间:2011-05-07 10:27:52

标签: qt row qtableview

大家好,我是QT的新手,我正在做Qtableview,将3列中的信息添加到无限行中,如

|--1--|--2--|--3--|

|--1--|--2--|--3--|

|--1--|--2--|--3--|

这就是我想插入/追加行的方式,但这是我在插入/追加行函数后得到的结果。

|--1--|--2--|--3--|

|-----|-----|-----||--1--|--2--|--3--|

|-----|-----|-----||-----|-----|-----||--1--|--2--|--3--|

我得到空洞并增加列数

我正在使用QStandardItemmodel作为模型,这是创建模型项

的代码
void tableview::add_tableview() //this is used to add data to tableview
{
    //to get data from line edit in add window
    QStandardItem *item_1 = new QStandardItem(QString(enter1_edit->text()));
    QStandardItem *item_2 = new QStandardItem(QString(enter2_edit->text()));
    QStandardItem *item_3 = new QStandardItem(QString(enter3_edit->text()));

     list << item_1 << item_2 << item_3;

     model->appendRow(list);

    //to set the model
    main_tableview->setModel(model);
}

使用qlineedit enter1_edit,enter2_edit & enter3_edit(在其他函数/方法中)

添加行中的值

main_tableviewqtableview

的对象

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

丁丁丁,我有。 我试图重现你的问题没有成功unil我尝试了一些东西......次优:)。 您的list是否有机会成为全球实体?如果是(我认为是),你继续添加项目。

第一次调用add_tableview()时,list为空,QStandardItem为空,添加了三个add_tableview()指针,用于追加这三个项目的行。到目前为止,上帝。

您再次呼叫QStandardItem,现在又创建了另外三个appendRow()并将其附加到列表中(其中仍包含上次呼叫中的三个)。调用add_tableview()实际上会尝试插入六个项目,前三个项目已经存在于模型中。如您所知,您不能将相同的项目指针添加到模型两次。值得庆幸的是,Qt不会崩溃,但会为其中的项目指针插入三个空列。

解决方案:在list.clear()方法调用结束{{1}}或使用本地变量作为列表。开销应该很小。

最好的问候 d