问题标签 [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 回答
2236 浏览

qt - 如何确定项目是否在 QItemDelegate 的paint() 函数中被选中?

我正在使用 QItemDelegate 制作表格。我使用 paint(..) 方法来绘制委托项目,使其在退出编辑模式时看起来相同,但我还需要在项目被选中时以不同方式绘制项目,并且在这些事件期间也会调用 paint 方法。我的问题是我怎么知道什么时候画哪个?

谢谢你。

0 投票
2 回答
8432 浏览

c++ - 使用 QItemDelegate 在 QTableView 中显示其他数据

我有一个与 QSqlTableModel 连接的 QTableView。
在第一列中,只有这种格式2010-01-02
的日期:我希望此列以这种格式显示日期(但不更改真实数据):02.01.2010
我知道我必须为此列创建一个 QItemDelegate,但我没有不知道如何读取现有数据并用不同的东西覆盖它。你知道如何管理吗?

0 投票
3 回答
4447 浏览

python - 自定义委托的 PyQt QTreeWidget 问题

我正在尝试编写简单的属性编辑器。我已经自动生成了 pyqt 类(下面代码中的 WorkZone),我需要使用 PropertyEditor 查看/编辑它的一些属性,使用委托 PropertyEditorDelegate,使用自定义编辑器 ColorEditor、LineEditor 等。

主要思想是 WorkZone 知道需要编辑哪些属性以及如何编辑,PropertyEditor 解析 WorkZone,寻找这样的属性,并用它们的值填充 QTreeWidget。

但是有一个问题:delegate 不会在双击、“Enter”或 smth 时开始编辑。它被添加到右行,它绘制项目,但仅此而已。此外,当我将 Propertyeditor 容器的类型切换为 QTableWidget 时,委托开始更正常地工作(但编辑器绘制在屏幕的一角,而不是在表格中)!

PS。还有一个问题:有没有什么方法可以将一些代表添加到行中,而无需将它们的实例存储在其他地方(脚本中的 self._delegates),这很丑陋。方法 setItemDelegate 接受指向委托的指针,并且在 C++ 中它获得了它的所有权,但在 PyQT 中并非如此......此外,例如,setItem 没有这样的问题。

以下脚本说明了问题:

0 投票
2 回答
5347 浏览

c++ - 如何在 QStyledItemDelegate 中绘制整行的背景?

我有一个 QTableView,我正在设置一个自定义 QStyledItemDelegate 。

除了自定义项目绘画之外,我还想为选择/悬停状态设置行的背景颜色。我想要的外观类似于 KGet 屏幕截图: KGet 的行背景 http://www.binaryelysium.com/images/kget_background.jpeg

这是我的代码:

结果是每个单独的单元格仅在鼠标悬停在其上时才接收到 mousedover 背景,而不是整行。很难描述所以这里是截图: 上面代码的结果 http://www.binaryelysium.com/images/loader_bg.jpeg

在那张图片中,鼠标位于最左边的单元格上,因此突出显示了背景..但我希望将背景绘制在整行上。

我怎样才能做到这一点?

编辑:有了更多的想法,我意识到 QStyle::State_MouseOver 状态仅被传递给鼠标所在的实际单元格,并且当为行中的其他单元格调用绘制方法时 QStyle::State_MouseOver 不是放。

所以问题变成了是否存在 QStyle::State_MouseOver_Row状态(答案:否),那么我该如何实现呢?

0 投票
1 回答
562 浏览

pyqt - 委托中的 QComboBox 后代编辑器中的“C++ 对象已销毁”

我修改了组合框来保存颜色,使用 QtColorCombo ( http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Widgets/qtcolorcombobox ) 作为“更多...”按钮的操作方法实施细节。它在 C++ 和 Linux 上的 PyQt 中运行良好,但在 Windows 上的 PyQt 中使用此控件时,我得到“底层 C++ 对象被破坏”。似乎错误发生在以下情况:

也许控制台输出会有所帮助。我在编辑器中覆盖了 event() 并得到:

  • 鼠标按钮释放
  • 焦点输出
  • 离开
  • 进入
  • 离开
  • 专注于
  • !!!!!!!!!QtGui.QColorDialog.getColor()
  • 窗口阻塞
  • 窗口停用
  • !!!!!!!!!“关闭编辑器”开火了!
  • 隐藏
  • 隐藏到父级
  • 聚焦
  • 延迟删除
  • !!!!!!!!!#6e6eff

有人可以解释一下,为什么在不同的环境中会有如此不同的行为,也许可以提供一种解决方法来解决这个问题。这是最小的例子: http ://docs.google.com/Doc?docid=0Aa0otNVdbWrrZDdxYnF3NV80Y20yam1nZHM&hl=en

0 投票
2 回答
7437 浏览

qt - 如何将 QAbstractTableModel 和 QItemDelegate 组合到一个工作源?

QTableView在 UI 文件中有一个定义。下图:

替代文字

我想用小部件进行月份更改(红色数组指向的地方)QComboBox,处理委托,但对我来说,对于我的自定义委托和模型来说,这是一个太复杂的问题,我不知道出了什么问题?!

问题:在我看来,QAbstractTableModel不能使用QItemDelegate,因为我无法将我的自定义简单ComboBoxDelegate小部件与 QTableView 结合起来。什么?

这是我所拥有的:

我的自定义委托标头/源数据:

模型数据:

之后,我像这样制作了 init 委托:

PS:很抱歉输出很长,但我认为如果所有来源都在这里显示会更好。

谢谢!


  1. 添加:
0 投票
2 回答
3376 浏览

qt - 在 QTableView 中格式化数据

我正在使用自定义委托在 QTableView 中显示 QDoubleSpinBoxes。这些旋转框以两位小数显示其内容。

我的问题是,我希望 QTableView 在未编辑时也显示带有两位小数的数字(此时它们不在 QDoubleSpinBox 中)。或者,更确切地说,我希望能够为 QTableView 的内容指定一种格式。

我试图继承 QStyledItemDelegate 来覆盖 displayText,但由于一个奇怪的原因它崩溃了。如果我只是将 QItemDelegate 子类化,它就可以正常工作。

我在 Windows 上使用 Qt 4.6.3。

0 投票
2 回答
873 浏览

editor - 尝试在 QTableView 中编辑单元格时调用 QFileDialog

有没有办法在不使用 QItemDelegate 的情况下做到这一点?我一直有很多麻烦。例如,如果我使用委托:

  1. 不会有原生对话框。
  2. 我必须实现自己的图像预览,
  3. 由于某种原因,我无法调整窗口大小,因为 setGeometry 不起作用等等。

    /li>
0 投票
2 回答
22101 浏览

c++ - Qt - QTableView - 表格行中的可点击按钮

我需要在QTableView. 这是为了打开一个对话框,以便更有效地编辑该行。

在网上看了几个小时后,我还没有找到一个像样的例子。

我知道这很可能是使用QItemDelegate.

任何帮助将不胜感激。

0 投票
1 回答
2382 浏览

qt - Qt:复选框和QItemDelegate-选择发生时不绘制复选框

我正在使用 QItemDelegate 结合 QTableView 的 IsUserCheckable 标志来绘制居中的复选框列。在我为表格启用行选择之前,一切都运行良好。

When selection occurs, the blue selection background is the only thing painted, and the checkboxes are no longer seen.

以下是我用来从委托中绘制复选框的代码。

关于为什么在进行选择时无法正确绘制的任何想法?