问题标签 [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.
python - 如何连接到列代表的信号
我为 QTableView 创建了一个可用的 PushButton Delegate。当按钮被按下时,它将发出一个 buttonClicked 信号(并打印以表明它正在工作。
我已将按钮委托设置为第 1 列的项目委托(请参阅接近末尾的 tableview.setItemDelegateForColumn(1, delegate)。
我卡住的地方是我想知道如何连接到 pushButton 发射信号。作为初学者,我可以遍历我的行/列并找到 tableView 中的每个元素(您可以在最后的示例中看到),所以我认为这可能是我可以建立连接的点. 但是,我不知道该怎么做。可以在列级别完成吗?
任何帮助,将不胜感激。
c++ - 即使委托仅添加到 QTableView,QListView 项目也显示委托编辑器
我有 aQListView
和 aQTableView
都一样QStandardItemModel
。我在QTableView
. 现在,当我转到我QTableView
的项目并双击一个项目时,我会看到委托编辑器小部件,现在如果我转到我的QListView
并双击同一项目,我也会在那里看到委托编辑器小部件。需要注意的是,我只看到那些QListView
已经被双击的项目的编辑器小部件QTableView
。这里发生了什么?为什么QListView
即使委托仅添加到QTableView
?
作为参考,我有以下代码:
c++ - 如何覆盖自定义委托类的“绘制”功能以绘制 QSpinBox
我在QTableView
. 当我双击一个项目时,我看到了一个“QSpinBox”的编辑器小部件,我可以很好地编辑该值。一旦失去焦点,这个编辑器小部件就会消失,我明白这一点。我想要的是QSpinBox
一直在那里。看看这里的 Qt 示例,我知道我需要重写类的paint
函数QAbstractItemDelegate
来绘制,QSpinBox
但我不知道该怎么做。一般来说,我想知道如何在绘图函数中绘制任何 Qt 小部件。
作为参考,我有以下测试代码:
c++ - 如何访问委托的paint()函数中的另一个索引?
当鼠标悬停在表格的一个单元格上时,我需要为该单元格的整行创建一个效果。这意味着我需要访问另一个索引。
在这种情况下,我创建了一个 for 循环,从表格的第一列运行到最后一列并为其设置效果。但它不起作用。当然,因为命令 drawText 没有任何输入参数作为索引。在这种情况下,如何设置另一个索引的效果?
也欢迎另一种解决方案。谢谢!
qt - 在 QTreeView 中设置单元格的大小
我需要设置:
我知道我们可以使用 Delegate 中的 sizeHint() 或 Model 中的 sizeHintRole 来做到这一点,但仍然无法想象函数应该是什么样子。这是我的代表中的paint():
你们能帮我处理 Model 中的 data() 函数并更新 Delegate 中的 sizeHint() 吗?
c++ - 使用 QStyledItemDelegate 绘制 QTreeView 项目
我已经基于Simple Tree Model Example
来自 Qt 示例列表的项目创建了一个项目并编辑了它的模型,以便也可以检查一些项目;这是它的样子:
我希望将一些项目稍微向左移动。QStyledItemDelegate
所以我通过派生和重新实现来创建一个委托,QStyledItemDelegate::paint
如下所示:
这样,类型项TreeItem::Type::Checkable
将被desiredThreshold
常量的值(在本例中为 10 像素)绘制到左侧。
到现在为止还挺好; 一切正常,绘图正确完成。然而...
问题是虽然项目稍微向左绘制(这没关系),但鼠标事件仍在工作,就好像项目根本没有移动一样;这是它的工作原理:
是否可以告诉代表整个项目略微向左绘制,以便当我单击复选框(也与整个项目一起移动)时,模型会正确更新?
python - QStyledItemDelegate 在 QTableView 中显示 QComboBox
我是 Python 和 PyQt5 的新手。我QStyledItemDelegate
用来制作QTableView
仅由 ComboBox 组成的列之一。我设法显示了 ComboBox,但我遇到了它的行为问题。
问题 1:即使选择已更改,ComboBox 似乎也没有提交对模型的更改。我使用导出按钮打印出列表以进行检查。
问题 2:当我向表中添加新行时,新行 ComboBox 选择不断恢复为第一个选择。这是为什么?
谁能帮我一些建议?谢谢你。
代码: