- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我需要显示一个项目列表。每个项目都包含一个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/
我有 QListView 与 QItemDelegate 的自定义实现。 MyItemDelegate 重新实现 createEditor() 以显示自定义小部件。小部件的大小取决于内容。 默认情况下
我正在尝试使用我在 Google 中找到的简单示例代码。 一切正常,但一旦我为列设置了委托(delegate),它就会显示错误。 这是 line我将“Bank”字符串设置为两行和 comboboxde
我有一个 QTreeview 并且我使用了这个样式表 QTreeView#treeView::item:selected:active { background: qlineargradien
我的 QTableView 和 QItemDelegate 类有问题。对于一列,我的代表创建了一个简单的组合框,一切正常。对于我的第二列,我需要一个在单个小部件中具有两个组合框的小部件。 我在我的 Q
我实现了以下委托(delegate),以在 QTableView 中提供组合框。用例是用等效的文本替换通常对用户无意义的列(键)(例如数字 ID)。 下面的代码片段有效(也用于保存正确的值),但它存在
我在项目上工作它就像 Qt 示例项目中的 SpinBoxDelegate 但我必须自定义它,我的意思是在 TableView 的第二列和第三列中有不同的小部件(文本框)而不是 spainBox。你有什
我有一个 QTreeView 和它的 QItemDelegate。QTreeView 有很多项。 目标: 如果我选择这些项目中的一个,那么不仅选择的项目而且其他一些(在我的其他条件之后)项目也必须重新
使用 QT4 的最佳方式是什么 QItemDelegate在 View 中显示图像的缩略图? 具体来说,当从非常大的图像文件 (> 500MB) 生成 pixmaps 时,如何阻止项目委托(deleg
Qt 5.5 有一个虚拟方法来为编辑模式定义一个自定义小部件: QWidget *createEditor(QWidget *parent,const QStyleOptionViewItem & o
我正在使用 QItemDelegate 制作表格。我使用 paint(..) 方法绘制委托(delegate)项目,使其在退出编辑模式时看起来相同,但我还需要在项目被选中与否时以不同方式绘制项目,并且
如何制作一个自定义的 QItemDelegate 就像所附的图片一样。这是一个 QTreeView。我要自定义的最后一个元素并添加一个 QItemDelegate 现在我只有绿色的 separator
我有一个 QTableView 显示来自自定义模型的数据。我有一个 QItemDelegate 用于每个单元格的版本。 View 的一列有一个由 QLineEdit 和 QCheckBox 组成的自定
我创建了一个自定义项目委托(delegate),它允许用户编辑文件路径列表: 我通过自定义类 DirEdit 实现了这一点。现在选定的路径已提交,当用户按下 enter 时编辑器关闭,但我想添加两种情
我为 QTableView 的一列设置了自定义项委托(delegate)。在某些情况下,我需要将其删除(即设置默认项目委托(delegate))。但是QT好像不允许这样。即使在设置新委托(delega
这两个类都为模型中的数据项提供显示和编辑功能。 QStyledItemDelegate 较新,关于 QItemDelegate 的 Qt 文档指出: Note that QStyledItemDele
我有一个 QTableView在 UI 文件中定义。下图: 我想用 QComboBox 更改月份( 红色 数组点)小部件,处理委托(delegate),但对我来说,对于我的自定义委托(delegate
使用 Qt ItemViews,可以通过 QItemDelegate 修改项目的编辑小部件,该 QItemDelegate 可以通过 createEditor 创建自定义编辑器。谁负责删除委托(del
使用 Qt ItemViews,可以通过 QItemDelegate 修改项目的编辑小部件,该 QItemDelegate 可以通过 createEditor 创建自定义编辑器。谁负责删除委托(del
我有一个自定义 QSortFilterProxyModel,它只显示表格中的某些行和列。我还有一个自定义 QItemDelegate 来控制表中某些值的绘制方式。我只将委托(delegate)应用于需
我正在尝试将委托(delegate)设置为我的 QTreeWidget。问题是永远不会调用委托(delegate) setModelData。调用 createEditor 和 setEditorDa
我是一名优秀的程序员,十分优秀!