我正在更新一些旧代码,不幸的是,这些代码严重依赖于Q3ListView和Q3ListViewItem,它现在已经过时的小助手类。
我假设我现在可以在没有项目层的情况下填充 QListView,但在查看文档时,我仍然没有很好地掌握这一点。我发现的一个教程用QStandardItems填充QStandardItemModel,然后将其设置为QListView的模型,但我也遇到了一个QAbstractListModel类,看起来它可能很有趣。出现了几个问题:
-QListView是否基本上是通过为其设置一些"模型"来填充的,该模型本身填充了项目?
-在我拥有的旧版本中,Q3ListViewItem 的子类化如下所示:
class OurListItem : public Q3ListViewItem {
public:
OurListItem(Q3ListView* parent) :Q3ListViewItem(parent) {ourData = NULL;}
OurListItem(Q3ListViewItem* parent) :Q3ListViewItem(parent) {ourData = NULL;}
Data* ourData;
};
考虑到现在可用的选项,重新实现这个想法的最佳方法是什么?
根据您希望转换的干净程度以及您希望进行转换的速度,您可能还需要查看 QListWidget 和 QListWidgetItem。 它们是Qt4中的近似类似物,我认为转换为它们通常很简单。 我记得(已经有一段时间了),这些类的Qt3版本可能也有表或树功能(而不仅仅是一个简单的列表),所以你可能也对QTableWidget和QTreeWidget(及其相关的项目类)感兴趣。