我可以得到一些类在Qt的所有实例
Can I get all instances of some class in Qt?
我已经用它作为源模型实现了QAbstractItemModel
和QSortFilterProxyModel
。我有一个itemModel
实例和几个filterModel
实例。在每个filterModel
中,我有一些变量值,这些值是根据itemModel
的过滤数据计算的。当重新创建itemModel
时(删除所有项并插入新项),该变量的值应设置为default(或在过滤完成后重新计算)。
问题是,我没有一些指向filterModel
实例的指针列表来迭代它们。当然,我可以在构造函数中创建这样的静态列表。但可能是MOC代替我做的,并将这样的列表保存在这个类的QMetaObject
中?
您的过滤器代理实现坏了。代理完全被告知模型的每一个变化——这就是为什么模型是QObject
s并发出变化信号!当源模型指示它已经更改时,没有什么可以阻止您适当地更改"某些变量"。
您需要将"某些变量"视为依赖于源模型中的某些数据(和结构!)。每当源模型指示对依赖数据或结构的更改时,代理必须重新计算该值—或者至少设置一个标志,以便在需要时可以延迟重新计算该值。
相关文章:
- 在Visual Studio中单实例Qt应用程序版本5.11.1中,在所有其他窗口的顶部打开Qt MainWindow
- Qt:在一个类中有一个QPainter对象的实例
- 从 QT Widget 对象实例访问 QT Widget 子成员
- Qt如何找到小部件实例?
- 如何使用Qt在D-Bus上创建/实例化配对代理
- QT Windows GUI-无需qtSingLeaplication即可如何打开一个实例
- 尝试实例化 QWidget 时 QT 程序出现段错误
- 使用Qt的两个"QLowEnergyController"实例连接到两个BLE设备
- 是否可以将对象实例移至QT项目中不同代码点的不同线程
- 向每个对象的实例广播Qt信号
- DLL 中的实例化类在 QT 的 LoadLibrary 中引发 127 错误
- Qt - 打开窗口的单个实例
- 访问/修改Qt/QML中某个类型的所有实例
- 如何在崩溃时管理Qt应用程序的单个实例
- C++/QT/OpenMP:访问同一实例时,线程似乎在等待
- 在 QT 中启动外部控制台应用程序的多个实例并捕获输出
- Qt,不能在窗口的构造函数中实例化对象吗?
- Qt/C++ 跨类实例的共享变量和可见性
- 在现有 C++ QT 项目中实例化 QML 对象
- 将 QDialog 窗口限制为一个实例 [Qt]