首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QStyledItemDelegate / QAbstractItemDelegate for QListView

QStyledItemDelegate / QAbstractItemDelegate for QListView
EN

Stack Overflow用户
提问于 2022-05-16 17:10:17
回答 1查看 149关注 0票数 0

我的目标是创建类似于联系人的应用程序,在那里我可以列出联系人并选择它来查看有关人员的信息。我发现可能的解决方案之一是使用QListView + QStyledItemDelegate / QAbstractItemDelegate。关于它的信息是非常困难的,所以我不清楚;

(联系人应该看起来类似于https://www.sketchappsources.com/free-source/4395-ios-contacts-screen-app-sketch-freebie-resource.html)

那么我应该如何使用QAbstractItemDelegate (我听说我必须重新实现paintEvent )?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-16 19:22:19

我建议你从一个数据模型开始。

  1. 使用QStandardItemModel类作为开始,并使用QStandardItem类实例填充该类。它将允许您设置图标,文本,字体,背景,大小和其他属性的项目。参考https://doc.qt.io/qt-5/qstandarditemmodel.html#details
  2. Set您的模型到QListView使用setModel
  3. To句柄项单击连接到QListViewclicked信号.

若要以更复杂的方式呈现项,应

  1. 重写QStyledItemDelegate类,它是paintsizeHint方法。在paint方法中,您应该实现呈现,您的sizeHint方法应该返回项的有效大小。引用https://doc.qt.io/qt-5/qabstractitemdelegate.html#details
  2. To获取项数据来呈现,使用传递给paint方法的QModelIndex引用的data方法。使用不同的角色获取适当的数据。通过通过https://doc.qt.io/qt-5/qt.html#ItemDataRole-enum
  3. Use将委托类设置为QListView来引用委托类

应该将模型设置为QListView,并以相同的方式处理项目单击。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72263065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档