【发布时间】:2020-06-22 13:56:47
【问题描述】:
我是 QT 和 C++ 方面的菜鸟。抱歉,如果我问了一些非常基本的问题。
我设计了一个看起来像这样的QTreeWidget。
此TreeWidget 中的值针对特定设备“X”显示。我正在寻找的功能是,如何根据用户的选择更改/显示/替换值(基本上更改 Value 列中的数字)。我至少有 10 个这样的设备,Value 列的值不同。
我知道我必须在这里使用模型/视图方法。经过激烈的谷歌搜索后,我发现我需要使用QTreeView 而不是QTreeWidget,但是使用TreeView 我无法添加旋转框或复选框。一些链接还建议绘制和重新创建按钮以复制我认为对于我拥有的简单用例来说过大的精确视图。
有人可以建议我一个简单的方法来实现这一点吗?如果我完全理解这些概念和方法错误,请告诉我。
主要要求:根据某些选择替换此视图的值(TreeWidget)。
【问题讨论】:
-
使用属性浏览器老兄!!
-
你不能只使用
QTreeView而不是QTreeWidget,你还必须有一个模型(继承自QAbstractTableModel或你自己的模型继承自QAbstractItemModel)。关键是您有model用于存储数据,view(QTreeView)用于在 GUI 中显示该数据。在this 文章中也有所有解释。 -
@Robert.K 感谢您的回复。我看了一下
QTreeView。我需要使用委托来添加像QSpinBox这样的小部件或一个简单的复选框。正如您所说,从 QAbstractItemModel 继承的自定义模型提供数据以与代表一起查看。对?如果我错了,请纠正我。再次感谢
标签: c++ qt qt-creator qtwidgets