【问题标题】:QTableView problems with rowQTableView 的行问题
【发布时间】:2011-08-20 16:46:50
【问题描述】:

大家好,我是 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 &amp; enter3_edit(在其他函数/方法中)添加行中的值

main_tableviewqtableview的对象

谢谢你帮助我!

【问题讨论】:

  • 我认为您需要提供更多信息:list 是什么?每次使用后都会清除吗? QLineEdit 是什么意思?

标签: qt row qtableview


【解决方案1】:

叮叮叮,我有。 我试图重现你的问题但没有成功,直到我尝试了一些......次优:)。 你的list 是不是一个全球实体?如果是(我认为是),您将继续向其中添加项目。

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

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

解决方案:在您的 add_tableview() 方法调用结束时调用 list.clear() 或为列表使用局部变量。开销应该是最小的。

最好的问候
D

【讨论】:

    猜你喜欢
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多