【问题标题】:QStandardItemModel removeRows does not remove signals on cells?QStandardItemModel removeRows 不会删除单元格上的信号?
【发布时间】:2013-05-12 06:39:24
【问题描述】:

在我的 QTableView 上有一个 QStandardItemModel 并尝试删除其中的所有行。

我首先调用了一个通过调用 takeRow 创建的方法,如果我是对的,它不会删除对象。

QAbstractItemModel 中的 removeRows 怎么样?我试过了,因为我在模型上有一个信号( dataChanged ),似乎信号没有断开,因为我在后台仍然有一些错误,比如“底层 C/C++ 对象已被删除”我尝试删除,然后添加一些新行。

我在这里错过了什么吗..?

【问题讨论】:

    标签: python pyqt qtableview qstandarditemmodel


    【解决方案1】:

    您是否遵循了关于子类化模型类的建议?如果我没有遵循文档中的提示,我只会遇到这样的问题;)

    removeRows() 实现必须在从数据结构中删除行之前调用 beginRemoveRows(),然后立即调用 endRemoveRows()。

    【讨论】:

    • 实际上不,我没有对模型进行子类化,我正在使用 QStandardItemModel 中的 removeRows... 发现一些不是真正“干净”的东西我想:我将行数设置为 0 ,然后在表格视图上重新设置模型......这太糟糕了^^
    • 嗯,实际上 removeRows 应该可以正常工作。你能编辑你的问题并提供一些源代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    相关资源
    最近更新 更多