问题标签 [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.
qt - 通过 QAbstractItemDelegate 以不同方式绘制折叠的 QTreeView 项目
我有一个场景,我想在项目QTreeView
折叠时以不同的方式绘制项目,但我认为没有办法这样做,因为模型和委托都不知道视图中项目的折叠/展开状态.
请注意,这不仅仅是希望其样式不同的情况。我需要从每个索引的模型中提取数据以知道要绘制什么,因此样式表不会削减它。
qt - QItemDelegate:将文本旋转 90 度
我有一个单元格(1 列,5 行),我想以 90 度角显示文本。我知道我需要调整几何图形的大小,但现在我什至无法显示文本。在中间行,我在我的子类 QItemDelegate::paint() 中执行此操作
在这种情况下,基本上我什么都没有打印出来。其他一些问题使我编写了这样的代码。我错过了什么吗?
qt - 带有自定义视图小部件的 QItemDelegate
Qt 5.5 有一个虚拟方法来为编辑模式定义一个自定义小部件:
但是如何使用自定义小部件来覆盖“视图”模式?我看到了使用方法的“星级”代表示例,paint
但这不是我需要的。我需要显示一个自定义小部件,其中包含其他标准小部件,并在QTableView
或的视图模式下使用它QListView
。无需弄乱绘制指针和图形 - 只需显示一个自定义小部件(具有 .ui 文件)并包含其他标准小部件及其行为。
例如:有一个下载管理器应用程序可以将下载显示为表格或列表视图。QListView
带有下载列表。每个下载都有 URL、标题、TotalSize、DownloadedSize、ProgressBar、Pause 按钮、Remove 按钮、Resume 按钮。所有这些都可以是表格中的列 ( QTableView
) 或类似于 HTML 的 DIV 在一个单元格中组成 (QListView
小部件)
如何实现?有什么类似的QWidget *createViewer(...
吗?
QtWidgets 不使用 QML。
qt - Qt QAbstractItemModel 函数 data() 以未定义的角色调用
我想使用创建自定义列表QListView
,因此我必须扩展QListView
,QItemDelegate
然后QAbstractListModel
实现特定方法,以及QAbstractItemModel::data(const QModelIndex & index, int role = Qt::DisplayRole) const
. 乍一看它在屏幕上正确显示,但在填充列表模型后出现问题。,该函数被每个具有不同角色data(index,role)
的项目模型调用 4-5 次(其中一些未定义角色/超出范围/可能是随机的)。而且它不仅发生在列表模型初始化之后!当我悬停一个列表元素时,视图会使用正确的索引和角色调用 data(index,role),但之后会再次使用意外的角色值调用它。
这似乎是一种尴尬的行为。我找不到奇怪电话的来源。我将日志放入自定义类的每个方法中,以确保我不会错误地调用data(index,role)
具有错误值的方法。
有没有人有一些想法在哪里看或为什么会发生这种奇怪的电话?
编辑 “奇怪”调用的来源在:
以某种方式调用QItemDelegate::sizeHint()
它时会触发data()
具有不同角色值的触发器。
在我的例子中,我定义了从 0(0,1,2,3) 开始的角色值。根据@Jens,这些值是保留的。更改自定义角色的起始值解决了我的问题。
python - 如何将 QItemDelegate (QLineEdit) 更改连接到 QSortFilterProxyModel PyQt4?
我试图通过在我的 QtableView 的第一行中继承 QItemDelegate 来设置 QlineEdit:
我只想知道如何将我的ExampleDelegate
文本更改连接到lineedit_textchange
主类中的函数?
qt - How to add different types of delegates in QTreeView
I want to create same kind of QTreeView (not QTreeWidget) structure as shown in attached figure.. This is Property Editor of QT. I am using QT-4.6
On 2nd column, depending on different condition, I can have either a spin box, or a drop down or a checkbox or text edit... and so on... Please guide me on how to set different delegates in different cells of a particular column. From docs, it is evident that there is no straight away API for setting delegate on a cell (rather is available for full widget or a row or a column).
c++ - 如何在 QTableview 的单元格中呈现用户定义的小部件(不使用 qml)
这几天遇到一个关于qt的问题。我想在我的 qt 应用程序中使用 QTableview 显示一个批处理数据(不是 qml gridview,因为我的应用程序使用小部件)。每个数据项包括一个图像和一个图像名称。我需要让图像显示在一个 qlabel 上,它的名称显示在另一个 qlabel 上。这两个小部件应该显示在我的自定义框架上。然后我会让用户定义的框架显示在每个 QTableView 的单元格中。
从 BigBourin(他也问了类似的问题),我知道我应该实现一个自定义委托,并重新实现painter 函数,就像这样:
我的问题是 item_widget.SetPackageName(index.data(Qt::DisplayRole).toString());
数据从哪里来?数据可以是用户定义的数据类吗?
c++ - Qt 如何管理从函数 QItemDelegate::createEditor() 返回的 Widget 指针的内存
我正在检查 Qt 示例 Spin Box Delegate 示例。在示例中
后期如何删除指针编辑器?删除是由 QItemDelegate 析构函数完成的吗?但是 QItemDelegate 的析构函数不是虚拟的。任何人都可以帮我解释它是如何工作的?
我不能在 QtCreator 中放置任何断点。我理解的方式是每次调用虚函数 createEditor() 时,都会分配一个新的内存主干,并且客户端代码将在函数结束时丢失指针。关于 createEditor() 的 Qt 文档没有解释。但我猜 tableView 中的每个单元格都会有一个编辑器,对吗?
我真的很想知道 Qt 如何删除那些 QWidget 指针。
谢谢
c++ - QItemDelegate,如何在 closeEditor() 信号中提供我自己的 EndEditHint?
我有我自己的表模型从QAbstractTableModel
. 它安装在我的视图中(从 子类化QTableView
)。在视图内部,我使用委托类(从 子类化QItemDelegate
)来编辑项目。
我想设置以下行为:当我使用我的委托完成编辑数据时,模型中的下一个项目(下一行和同一列中的项目)应该变得可编辑。
文档说它是由在信号QAbstractItemDelegate::EditNextItem
中发送的提示提供的。closeEditor()
但是默认情况下,这个信号是用QAbstractItemDelegate::NoHint
参数发送的。问题是我不必在重新实现基本QItemDelegate
虚函数时显式调用此信号setModelData()
,例如。
文档还说这个信号是由内部事件过滤器发送的,该过滤器在调用QAbstractItemDelegate()
构造函数时安装在项目委托上。
我如何提供自己的EndEditHint
输入closeEditor()
信号?
python - 单击QTableView时如何获取委托项目
下面的代码创建了单个QTableView
. 有一个QItemDelegate
被指定为 PersistentEditor。创建了两种编辑器:QLineEdit
为第 0 列创建,为第 1 列创建“QComboBox”。
单击时,tableView
我想获取两个编辑器的实例:LineEdit 的实例和组合框的实例。如何做到这一点?