gpt4 book ai didi

qt - QListWidget或QListView与QItemDelegate?

转载 作者:行者123 更新时间:2023-12-03 12:47:07 24 4
gpt4 key购买 nike

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

经过阅读后,我了解到,如果我使用QListWidget和QListWidgetItem,则可以实现。我可以根据需要将每个QListWidgetItem子类化,然后在列表小部件中进行设置。

但是,我还读到一种更合适的方法(“模型 View ”方法)是将QlistView与QItemDelegate结合使用。但是,如果我使用的是QItemDelegate,似乎只能绘制这些小部件。如何获得按钮事件?

对不起,这个巨大的帖子。我对何时使用QListWidget / QListView的整个概念感到困惑。

最佳答案

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

使用QListWidget及其关联的类QListWidgetItem,您可以例如轻松插入和删除项目。但是,如果要插入QPushButtons,则不能使用它,因此最好使用QListView及其(继承的)方法为给定索引设置窗口小部件。

至于信号,由于您将创建QPushButton,因此只需使用

QObject::connect(my_button, SIGNAL(clicked()),...) 

处理。

关于qt - QListWidget或QListView与QItemDelegate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6003086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com