首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QListWidget还是带有QItemDelegate的QListView?

QListWidget还是带有QItemDelegate的QListView?
EN

Stack Overflow用户
提问于 2011-05-15 00:15:28
回答 2查看 17.5K关注 0票数 23

假设我需要显示一个项目列表。每个项目都包含一个QPushButton、一个图像和一些文本。当用户点击按钮时,应该会发生一些事情(即我需要得到信号)。在Qt中实现这一点的正确方法是什么?

经过一些阅读,我明白如果我使用QListWidget和QListWidgetItem,这是可以实现的。我可以根据需要划分每个QListWidgetItem的子类,并在list小部件中设置它们。

然而,我也读到一种更合适的方法(模型视图方法)是结合使用QlistView和QItemDelegate。但如果我使用的是QItemDelegate,我似乎只能绘制小部件。如何获取按钮事件?

对于这篇很大的帖子,我很抱歉。我对何时使用QListWidget / QListView的整个概念有些困惑。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-15 08:31:44

QListWidget本质上是QListView的自定义版本,专为列表小部件的标准情况而设计,当您所做的只是在列表中呈现图像或文本项,并且与底层模型的关系很简单时。

使用QListWidget和它的相关类QListWidgetItem,你可以很容易地插入和删除项目。但是如果您要插入QPushButtons,那么就不能使用它,所以您也可以只使用QListView及其(继承的)方法来设置给定索引的小部件。

至于信号,因为您将创建QPushButton,所以只需使用

代码语言:javascript
复制
QObject::connect(my_button, SIGNAL(clicked()),...) 

来处理这件事。

票数 18
EN

Stack Overflow用户

发布于 2013-11-29 13:37:25

与Matt的答案不同的是,正如qt-project.org:http://qt-project.org/forums/viewthread/17953上的这篇文章所指出的那样,你似乎可以在项目上使用自己的小部件。

如果您只有几个项目要显示,并且对编写模型类的麻烦不感兴趣,这可能会很有用。

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

https://stackoverflow.com/questions/6003086

复制
相关文章

相似问题

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