问题标签 [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.

0 投票
1 回答
723 浏览

python - 如何连接到列代表的信号

我为 QTableView 创建了一个可用的 PushButton Delegate。当按钮被按下时,它将发出一个 buttonClicked 信号(并打印以表明它正在工作。

我已将按钮委托设置为第 1 列的项目委托(请参阅接近末尾的 tableview.setItemDelegateForColumn(1, delegate)。

我卡住的地方是我想知道如何连接到 pushButton 发射信号。作为初学者,我可以遍历我的行/列并找到 tableView 中的每个元素(您可以在最后的示例中看到),所以我认为这可能是我可以建立连接的点. 但是,我不知道该怎么做。可以在列级别完成吗?

任何帮助,将不胜感激。

0 投票
1 回答
1376 浏览

c++ - QStyledItemDelegate 如何在一行中制作两个小部件?

我创建了一个 QStyledItemDelegate 类,我想在其中使一些项目可检查,一些带有两个小部件。但它工作不正常。我错过了什么?这是它的样子:

在此处输入图像描述

请参见第 1 行,看起来这两个小部件都在那里,但它们并没有真正显示出来。而且我需要一些帮助才能使项目可检查(这与添加复选框不同?)。谢谢你。

这是我的 QStyledItemDelegate 类:

这是我的 main.cpp:

这最终是我想要实现的目标:

在此处输入图像描述

0 投票
1 回答
385 浏览

c++ - 即使委托仅添加到 QTableView,QListView 项目也显示委托编辑器

我有 aQListView和 aQTableView都一样QStandardItemModel。我在QTableView. 现在,当我转到我QTableView的项目并双击一个项目时,我会看到委托编辑器小部件,现在如果我转到我的QListView并双击同一项目,我也会在那里看到委托编辑器小部件。需要注意的是,我只看到那些QListView已经被双击的项目的编辑器小部件QTableView。这里发生了什么?为什么QListView即使委托仅添加到QTableView?

作为参考,我有以下代码:

0 投票
1 回答
339 浏览

qt - 为什么委托无法识别状态mouseOver?

我创建了一个委托,需要识别 mouseOver 状态来构建效果。但它不起作用。当我的表出现时,输出是这样的 在此处输入图像描述

当我将鼠标移到桌子上时,输出是这样的 在此处输入图像描述

我没有看到状态 MouseOver。我怎样才能认出它?

0 投票
2 回答
1203 浏览

c++ - 如何覆盖自定义委托类的“绘制”功能以绘制 QSpinBox

我在QTableView. 当我双击一个项目时,我看到了一个“QSpinBox”的编辑器小部件,我可以很好地编辑该值。一旦失去焦点,这个编辑器小部件就会消失,我明白这一点。我想要的是QSpinBox一直在那里。看看这里的 Qt 示例,我知道我需要重写类的paint函数QAbstractItemDelegate来绘制,QSpinBox但我不知道该怎么做。一般来说,我想知道如何在绘图函数中绘制任何 Qt 小部件。
作为参考,我有以下测试代码:

0 投票
1 回答
267 浏览

c++ - 如何访问委托的paint()函数中的另一个索引?

当鼠标悬停在表格的一个单元格上时,我需要为该单元格的整行创建一个效果。这意味着我需要访问另一个索引。

在这种情况下,我创建了一个 for 循环,从表格的第一列运行到最后一列并为其设置效果。但它不起作用。当然,因为命令 drawText 没有任何输入参数作为索引。在这种情况下,如何设置另一个索引的效果?

也欢迎另一种解决方案。谢谢!

0 投票
1 回答
1200 浏览

qt - 在 QTreeView 中设置单元格的大小

我需要设置:

我知道我们可以使用 Delegate 中的 sizeHint() 或 Model 中的 sizeHintRole 来做到这一点,但仍然无法想象函数应该是什么样子。这是我的代表中的paint():

你们能帮我处理 Model 中的 data() 函数并更新 Delegate 中的 sizeHint() 吗?

0 投票
0 回答
448 浏览

qt - 如何使用 Delegate 在 QTreeView 中创建按钮?

我有一张这样的桌子:

在此处输入图像描述

当我将鼠标移到该表的一行上时,该行的右侧有一个按钮,当我单击该按钮时,该行将从表中删除。

在此处输入图像描述

我如何在我的视图中调整我的委托和信号/插槽以满足此要求?

X按钮的图像是x_button.png

0 投票
1 回答
1361 浏览

c++ - 使用 QStyledItemDelegate 绘制 QTreeView 项目

我已经基于Simple Tree Model Example来自 Qt 示例列表的项目创建了一个项目并编辑了它的模型,以便也可以检查一些项目;这是它的样子:

在此处输入图像描述

我希望将一些项目稍微向左移动。QStyledItemDelegate所以我通过派生和重新实现来创建一个委托,QStyledItemDelegate::paint如下所示:

这样,类型项TreeItem::Type::Checkable将被desiredThreshold常量的值(在本例中为 10 像素)绘制到左侧。

到现在为止还挺好; 一切正常,绘图正确完成。然而...

问题是虽然项目稍微向左绘制(这没关系),但鼠标事件仍在工作,就好像项目根本没有移动一样;这是它的工作原理:

在此处输入图像描述

是否可以告诉代表整个项目略微向左绘制,以便当我单击复选框(也与整个项目一起移动)时,模型会正确更新?

0 投票
1 回答
2883 浏览

python - QStyledItemDelegate 在 QTableView 中显示 QComboBox

我是 Python 和 PyQt5 的新手。我QStyledItemDelegate用来制作QTableView仅由 ComboBox 组成的列之一。我设法显示了 ComboBox,但我遇到了它的行为问题。

问题 1:即使选择已更改,ComboBox 似乎也没有提交对模型的更改。我使用导出按钮打印出列表以进行检查。

问题 2:当我向表中添加新行时,新行 ComboBox 选择不断恢复为第一个选择。这是为什么?

谁能帮我一些建议?谢谢你。

代码: