我的目标是创建类似于联系人的应用程序,在那里我可以列出联系人并选择它来查看有关人员的信息。我发现可能的解决方案之一是使用QListView + QStyledItemDelegate / QAbstractItemDelegate。关于它的信息是非常困难的,所以我不清楚;
(联系人应该看起来类似于https://www.sketchappsources.com/free-source/4395-ios-contacts-screen-app-sketch-freebie-resource.html)
那么我应该如何使用QAbstractItemDelegate (我听说我必须重新实现paintEvent )?
发布于 2022-05-16 19:22:19
我建议你从一个数据模型开始。
QStandardItemModel类作为开始,并使用QStandardItem类实例填充该类。它将允许您设置图标,文本,字体,背景,大小和其他属性的项目。参考https://doc.qt.io/qt-5/qstandarditemmodel.html#detailsQListView使用setModelQListView的clicked信号.若要以更复杂的方式呈现项,应
QStyledItemDelegate类,它是paint和sizeHint方法。在paint方法中,您应该实现呈现,您的sizeHint方法应该返回项的有效大小。引用https://doc.qt.io/qt-5/qabstractitemdelegate.html#detailspaint方法的QModelIndex引用的data方法。使用不同的角色获取适当的数据。通过通过https://doc.qt.io/qt-5/qt.html#ItemDataRole-enumQListView来引用委托类应该将模型设置为QListView,并以相同的方式处理项目单击。
https://stackoverflow.com/questions/72263065
复制相似问题