问题标签 [qstyleditemdelegate]
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 - 使用 QSortFilterProxyModel 拥有一个有效的 QSqlRelationalDelegate
我一直在使用QSortFilterProxyModels
。但是,如果QSqlRelation
在源模型上设置了 aQSqlRelationalDelegate
以及在视图上设置了 a ,则每当视图切换到代理模型时, 就会QSqlRelationalDelegate
消失,留下基本的QLineEdit
or QSpinBox
。
如何使视图中的列同时使用 aQSortFilterProxyModel
和QSqlRelationalDelegate
,并给出预期的QCombobox
下拉菜单?
python - 在 QTableView 单元格中绘制可调整的文本
我需要继承我的 QTableView 的 QStyledItemDelegate。更具体地说,我需要修改特定列的显示。此列中的单元格通常包含文本。这是我的自定义 QStyledItemDelegate 类的一小部分:
但是当我尝试像这样显示它时,我有一个小问题。
预期的:
现实:
为了得到预期的图片,我只需要在 StyledItemDelegate 中的这个列上什么都不做。我需要做同样的事情,但使用函数 drawText。
你有什么主意吗 ?
c++ - 使用 QStyledItemDelegate 调整 QStandardItem 的选择行为
我QStyledItemDelegate
用来为我的QTreeView
.
我的树视图的根没有装饰。它只是一棵简单的树,关系类似于下面的树:
父母和孩子的风格不同,父母的选择被禁用。
我想自定义子节点中的选择行为,以便子节点周围的选择矩形覆盖整行而不是单独的文本子节点。
当前行为:
期望的行为:
有没有办法像这样使用扩展选择矩形QStyledItemDelegate
?我尝试adjusting
了rect
inQStyleOptionViewItem
参数QStyledItemDelegate::paint
。但这将子节点文本移到了左侧。我想将文本节点保持在同一位置,但只需将选择矩形调整到左侧。所以就像在paint方法中绘制文本和像素图一样,有没有办法绘制选择矩形(使用默认的选择矩形颜色)?
我的 StyledItemDelegate 的绘制方法如下:
我在 QStyledItemDelegate::paint 方法中使用以下代码:
c++ - QItemDelegate 和 QStyledItemDelegate 有什么区别?
这两个类都为模型中的数据项提供显示和编辑工具。QStyledItemDelegate
是较新的,并且 Qt 文档关于QItemDelegate
状态:
请注意,QStyledItemDelegate 已经接管了绘制 Qt 项目视图的工作。我们建议在创建新委托时使用 QStyledItemDelegate。
我很困惑两者之间有什么区别,为什么QStyledItemDelegate
首选QItemDelegate
!
qt - 指向customdelegate的QWidget(Combobox)的访问指针
我从QStyledItemDelegate
. 我QComboBox
在这个委托中使用 a 。此委托用于QTableView
.
我的问题是,如何以编程方式更改委托中组合框的索引,即如何在委托类之外访问指向该小部件的指针?我已经检查过CreateEditor
,当我们单击组合框时会自动调用(of) 函数,SetEditorData
并且我们无法手动调用它们来操作模型中的数据。SetModelData
QStyledItemDelegate
qt - 在自定义 QStyledItemDelegate 上绘制背景,例如
我有一张桌子,我正在尝试按照qt 文档中的示例添加自定义委托。然而,虽然背景颜色似乎是正确的,但覆盖似乎丢失了,以防选择了行(请注意在评级单元格和行的其余部分之间具有蓝色背景的列中的差异)。像标准委托那样绘制背景的最简单方法是什么?
因为QItemDelegate
似乎有drawBackground
,但是没有这样的功能QStyledItemDelegate
。不幸drawBackground
的是,还省略了您在左侧单元格中看到的稍微亮一点的矩形(顶部和底部比背景小 1 px)。
c++ - dataChanged 信号不适用于 ComboBoxDelegate
我的问题如下:
有aQTableView
和aQStandardItemModel
这样使用:
和一个组合框委托:
每次更改表格单元格的值(通过组合框)时,我都需要捕获新值和刚刚修改的单元格的索引。我dataChaged
以这种方式使用与模型关联的信号:
但它不起作用,GetChangedValue
尽管组合框已更改其值,但它从不调用该方法。我跳过任何步骤吗?
下面是代码ComboBoxDelegate
:
}
qt - 在 QTableView 单元格的中心绘制 QPixmap
我有一个运行良好的 QTableView,第一列包含一些缩略图,在此列的每个单元格中,缩略图垂直居中,但不是水平居中。
我真的需要使用委托吗?如果是,如何使用 QStyledItemDelegate 将它们水平居中?
qt - QTableWidgetItem 中的绘图线渲染问题
我想在里面画一条线QTableWidgetItem
。为了划清界限,我重新实现了该QStyledItemDelegate::paint
方法。
但是,当我滚动或选择QTableWidget
. 一些项目失去了他们的绘画效果。
这是我的绘画实现:
在 TableWidget 初始化函数中,我像这样设置委托项目
注意:我将每个项目的颜色名称存储为Qt::UserData
.
在 table init 上,线条画得很好,错误是当我在玩桌子时。
这是一些截图
有什么建议么 ?
python - QStyledItemDelegate (PySide/PyQt/Qt) 中 createEditor 的父级是什么?
我有QTreeView
一个QStandardItemModel
。我正在使用自定义委托绘制/编辑数据。在createEditor
方法中,我parent.window()
用来访问整个应用程序的主窗口(见下文链接到另一个问题的一些代码)。
问题:createEditor
委托中的父母是什么?它使用以下参数定义:
令人困惑的是什么时候QStyledItemDelegate
初始化,然后我打印出来type(parent)
,我得到了树(我让这个委托显示的树)。这是我所期望的。但是,当我在方法实现中执行相同操作并打印时,它只会返回. 当我跑步时,我得到了同样的结果,这是我从这里得到的建议:type(parent)
createEditor
QWidget
parent.metaObject().className()
当我尝试提取在树视图中定义的属性时,例如parent.rootItem
,出现属性错误。那么,这里发生了什么?我的编辑器的父级是什么?
我没有从PyQt 文档中找到太多帮助:
parent 参数,如果不是 None,将导致 self 由 Qt 而不是 PyQt 拥有。从 QAbstractItemDelegate.createEditor() 重新实现。返回用于编辑由 index 指定的项目进行编辑的小部件。父小部件和样式选项用于控制编辑器小部件的显示方式
请注意,这一切都是由对此处解决方案的评论中讨论的不同问题的解决方案开始的: