有没有办法限制我的 QTreeWidget 可以拥有的项目数,类似于FIFO缓冲区?
答案 0 :(得分:2)
我仍然不完全确定你想要实现什么。但这里有一些一般的建议。
如果要实现窗口小部件与基础数据结构交互的自定义约束和行为,则应考虑遵循Qt的模型视图体系结构。
显示QWidget的任何多项都可以用QView + QModel替换。例如,您可以将QTreeWidget
替换为QTreeView
。然后,您实现从QAbstractItemModel
派生的自己的模型,并将其附加到视图中。视图将自动适应模型中所做的更改。这样,您可以在模型类中拥有一个容器,每当添加一个项目时,检查是否达到最大数量,然后删除其他任何元素。
These tutorials会让您更深入地了解我的建议。我知道它们是C ++,但所有这些都应该很容易翻译成pyqt。