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