目前我有一个简单的设置,我在其中维护一个与ListModel中每个项目对应的bool列表:
http://programmingexamples.net/wiki/Qt/ModelView/StringListModelCheckable
然而,现在我想做的是有两个这样的列表bool,比如IsHot和IsLarge。然后我希望有一个ListView显示每个字符串,其中一个bool(“Hot”视图)的复选框,以及一个单独的ListView,显示每个字符串,其中包含另一个bool的复选框(“Large”bool)。关于如何解决这个问题的任何提示?
答案 0 :(得分:1)
将模型设为表格,将数据返回两个不同的列,这些列中的单元格将是可检查的。
在列表视图中,调用QListView::setModelColumn
设置列表视图显示的列。
如果要同步列表之间的滚动,那么您最好使用QTableView,以便行匹配。
编辑以添加有关返回文本和检查状态的更多详细信息。
要从模型返回文本和复选框的状态,您可以从模型上的[data]函数返回不同角色的不同数据。
来自manual for Qt::ItemDataRole
:
Qt::DisplayRole
要以文本形式呈现的关键数据。 (QString
)Qt::CheckStateRole
此角色用于获取项目的已检查状态。 (Qt::CheckState
)
模型中的两列都会返回DisplayRole
的相同数据(名称),但CheckStateRole