问题标签 [qitemdelegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
578 浏览

python - QListView中的Pyside QItemDelegates

我一直在互联网上广泛搜索有关使用 PySide 为 QListView 创建自定义项目的教程。我发现一些使用 PyQt 的用法,但我发现它们对我来说真的很奇怪。我想使用 PySide 重新创建此链接中显示的列表项的外观,因为我正在创建此 Web 应用程序的桌面版本。非常感谢任何帮助/想法/示例代码。

0 投票
0 回答
1039 浏览

qt - 在编辑状态下设置 QTreeView/QTreeWidget 项的样式

我想使用QSS编辑QTreeView/QTreeWidget项目时出现的行编辑来设置样式。

这是一个例子:

在此处输入图像描述

这是一个应用QTreeWidgetQTreeView::item { min-height: 25px; }样式的标准。

我的问题是:当我双击与项目本身大小相同的项目时,是否可以进行行编辑?或者可能具有一定的像素高度?

注意:我不想为此使用自定义委托,我只想这样做QSS

0 投票
1 回答
3710 浏览

c++ - QItemDelegate 和 QStyledItemDelegate 有什么区别?

这两个类都为模型中的数据项提供显示和编辑工具。QStyledItemDelegate 是较新的,并且 Qt 文档关于QItemDelegate状态:

请注意,QStyledItemDelegate 已经接管了绘制 Qt 项目视图的工作。我们建议在创建新委托时使用 QStyledItemDelegate。

我很困惑两者之间有什么区别,为什么QStyledItemDelegate首选QItemDelegate

0 投票
1 回答
386 浏览

c++ - Qt:QTreeView在一行上显示两个字符串

我正在使用 Qt 5.4 并寻找一种在单行上显示两个字符串的方法,如下图所示:

在此处输入图像描述

但我能达到的最接近的结果是这个(有两行),它看起来相当可怕:

在此处输入图像描述

DevicesAndPlaylistModel.h

DevicesAndPlaylistModel.cpp

MainWindow.cpp -> 构造函数

编辑:发布的源代码

0 投票
1 回答
1241 浏览

qt - 在自定义 QStyledItemDelegate 上绘制背景,例如

我有一张桌子,我正在尝试按照qt 文档中的示例添加自定义委托。然而,虽然背景颜色似乎是正确的,但覆盖似乎丢失了,以防选择了行(请注意在评级单元格和行的其余部分之间具有蓝色背景的列中的差异)。像标准委托那样绘制背景的最简单方法是什么?

因为QItemDelegate似乎有drawBackground,但是没有这样的功能QStyledItemDelegate。不幸drawBackground的是,还省略了您在左侧单元格中看到的稍微亮一点的矩形(顶部和底部比背景小 1 px)。

在此处输入图像描述

0 投票
1 回答
1304 浏览

qt - 表中委托的 Qt 事件

问题/问题

我尝试event在自定义委托中重新实现该方法来处理点击。委托用于在表格视图中呈现表格单元格。但是,我没有得到委托的任何事件(根据调试器永远不会调用该方法)。我需要做些什么特别的事情,以便我的代表可以跟踪事件(特别是鼠标进入/退出、点击)?

语境

我想为表格单元格创建自己的数据表示。功能应该接近按钮,但略有不同。我读到在表格中实现按钮的两个选项是设置一个据称具有很高性能成本的单元格小部件(我不太明白为什么)或使用委托。

由于我想要与按钮不同的行为,并且为了速度神话,我决定与代表一起去。

0 投票
3 回答
21164 浏览

qt - 更改 QCheckBox 指示器矩形颜色

我正在尝试仅更改QCheckBox指示器矩形的颜色。

目前我成功绘制了矩形的右边和底线。可能我在这里做错了什么。

这是我的代码:

CheckBoxWidget.cpp

CheckBoxWidget.h

有什么建议么 ?

0 投票
2 回答
2498 浏览

c++ - 如何关闭由自定义 QItemDelegate::createEditor() 创建的编辑器

我创建了一个自定义项目委托,它允许用户编辑文件路径列表:

截屏

我通过自定义类 DirEdit 实现了这一点。现在提交了选定的路径,并且当用户按下回车键时编辑器关闭,但我想添加两种情况,即无需用户按下回车键即可关闭编辑器:

  1. 当用户通过激活组合框条目(通过单击或按回车键)选择文件时
  2. 当用户通过单击“省略号”工具按钮选择文件时。

我一直在尝试 clearFocus() 和其他方法,但似乎没有任何效果。下面是一个完整的例子:

0 投票
1 回答
299 浏览

qt - 我如何知道我的 QItemDelegate 何时是列表中的最后一项?

我的自定义项目委托覆盖了这个函数:

一切工作正常,画得很好,除了出于某种原因,' option.viewItemPosition'总是QStyleOptionViewItem::ViewItemPosition::Invalid

我正在尝试检查该项目是否是列表中的最后一项:

调试告诉我,对于每个项目,结果都是ViewItemPosition::Invalid。=(...

我的模型应该提供这些细节吗?如果是这样,怎么做?我的模型继承了QAbstractListModel,视图是一个QListView。

注意:因为我不知道为什么这不起作用,所以我只是通过将 QModelIndex 与0and进行比较来作弊rowCount()-1,但我想知道为什么这不起作用。

0 投票
1 回答
362 浏览

database - 带有 QTableView 的 QSqlTableModel - 在编辑时考虑 DB 定义的约束

我已经实现了一个 Oracle 数据库。我将 Qt 用于我的应用程序的 GUI 并作为数据库的接口。建立与我的数据库的连接并在 QTableView 中显示表格工作正常。使用 QSqlTableModel 通常原生支持编辑所有单元格。但是,当关联的默认 ItemDelegate 编辑单元格时,Qt 似乎没有考虑数据库定义的任何约束。

假设我编辑了一个外键值的单元格,Qt 不仅让我不输入任何键值,而且提交这些更改查询数据库以执行更新。由于设置约束,这显然行不通。现在,我知道要求的默认 ItemDelegate 可能有点过分了,因为我的视图可以检查编辑时的有效值。

当我提交不受支持的值时,就会出现真正的问题。视图仍然应用值更改,表明编辑是有效的。不处理错误,也不传递错误消息。从那里开始,视图将不允许对某些行进行编辑,直到我将更改恢复为符合我的约束的值。

我很难相信,我必须设置我自己的 itemDelegate,以根据数据库中的约束验证值更改。

由于我希望能够回答这篇文章的人都知道如何建立连接,因此我将稍微简化一下代码:

我会很感激任何帮助。谢谢!