问题标签 [qstandarditem]

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 回答
13872 浏览

c++ - 如何完全遍历 QStandardItemModel?

我有一个 QStandardItemModel,我在 q QTreeView 中显示。工作正常。

为了突出显示相关行,我想突出显示其中的一些:因此,我有一个 QStringList ,其中包含要突出显示的 QStandItem* 的名称。

我的模型具有以下结构:
Level_1
+--> Level_11
+--> Level_12
+--> Level_13
Level_2
+--> Level_21
+--> Level_22
+--> Level_23
...

在这里,它迭代第 11、12 和 13 层,然后停止。

0 投票
1 回答
2578 浏览

c++ - 重命名 QTreeView 项

我已经四处寻找了很长一段时间,但我一直无法找到尝试重命名 QTreeView 中的项目的解决方案。基本上我的意思是当您双击 QTreeView 中的某些内容时,您可以选择重命名该项目。当用户完成名称编辑后,我需要一个信号来告诉我树中的索引或已编辑的 QStandardItem,以便我可以更改附加到 QStandardItem 的特定项目名称。

这可能有点含糊,我不能真正提供我的来源,因为它需要我给你我的整个项目,这是几场演出。如果您需要我解释其他任何内容,我会尽力而为,我还会附上我正在谈论的内容的图像,以便更好地理解。

双击重命名

0 投票
1 回答
1234 浏览

c++ - QStyledItemDelegate 重新实现:鼠标悬停时为项目背景着色

我最初的目标是为特定列的项目(QStandardItem)提供富文本,因此我按照建议实现了一个子类委托。

一切看起来都很好,除了一件事:当我将鼠标指针移到这些项目上时,它们根本没有突出显示。(该行中的其他项目 - 使用原始绘制方法的地方 - 被突出显示。)项目选择虽然工作正常。然后我添加了行

在其中我能够处理项目文本突出显示,但我也不知道如何突出显示背景。它仍然是白色的。有任何想法吗?

以下是相关代码:

0 投票
3 回答
1209 浏览

c++ - 如何使用 QModelIndex 访问 QTreeView 中的 childWidget?

我正在使用 Qt 库(4.8 版)开发应用程序。

我有一个带有 QStandardItemModel 的 QTreeView。我的小部件看起来像这样:

项目1

分项 11

分项 12

项目2

子项 21

子项22

第 3 项

子项 31

子项 32

这是我将项目添加到 QTreeView 的方法:

我只想在用户双击一个项目时采取行动(当他点击一个子项目时什么都不做)。所以我使用 doubleClicked(const QModelIndex & index)信号。

我想处理用户双击的项目/子项目的信息。所以我得到了我的项目/子项目的行:

但是每次我尝试引用项目/子项目以显示其名称或检查它是否有子项时,我只能访问这些项目:

我的问题是:如何访问我的插槽中的子项(vbetween items abd subitems)?或者我怎样才能阻止他们发出信号?我不能禁用它们——这对用户来说太混乱了。

编辑:问题是每次我点击一个项目或子项目并执行:

或者:

我得到了真实的结果。所以我只能参考这些项目。

我的问题是:引用子项的正确方法是什么?

0 投票
1 回答
2043 浏览

qt - Qt - 项目模型/视图 - QTableView 一个单元格中的多个数据

我正在尝试在 C++ 和 QT 中使用模型/视图架构,需要了解如何将 QTableView 中的一个单元格划分为更多行或更多列并为它们使用不同的小部件以及如何仅显示一些列从模型

我想每行保持这个结构:

重要的是:

  1. 在 2D 表格中显示(例如 QTableView) - 没有树。我可以更改模型,但我需要在表格中显示它。
  2. 仅显示模型中的一些数据。
  3. 根据行索引 - 从父项中选择一些列,并从子项(结构)中选择一些数据。

我有几个问题:

  1. 如何在一个 QTableView 单元格中实现更多的行/列,并为它们使用不同的类型和不同的 QWidget?
  2. 如何只选择一些我想在视图中显示的数据?当我在模型中重新实现“columnCount”时,我不能把常量放在那里,因为我想在不同的视图中使用这个模型。我阅读了教程,发现没有必要重新实现视图类。如何只选择我想显示的数据?
  3. 在这种情况下使用 3D 模型(QStandardItemModel 和 QStandardItems)还是 2D 模型(QAbstractTableModel)更好?
0 投票
0 回答
283 浏览

qt - EventFilter 捕获来自 Mac 和 Windows 上不同对象的事件

我正在开发适用于 Windows 和 Mac 的应用程序。我注意到 Mac 和 Windows 的不同行为。

当我为 QComboBox 设置 QLIstView 并尝试从组合框的 PopUp 捕获 Enter/Return 按下事件时,eventFilter 从 Windows 上的 QListView 和 Mac 上的 QComboBox 获取事件,因此,相同的代码会导致不同的输出,因为这个的。

这是代码:

主窗口.h


主窗口.cpp


有关 Mac 和 Windows 的输出,请参见下图

窗口输出

Mac 输出

0 投票
1 回答
33 浏览

python - PyQt4:变量内容未出现在 QStandardItem 中

我正在使用 PyQt4 和 python 来解析 csv 文件,进行一些计算并显示结果。

如果我打印变量,结果会正确显示。但是,如果我将这些变量放在 QStandardItem 中,它们会显示为空。请问我在做什么错?

下面的示例,QStandardItem 中的变量 sum 和 nbr2 显示为空,而打印正常。

0 投票
2 回答
1321 浏览

qt - 带有用户数据的 QStandardItem

在我的应用程序中,我有一个带有 QStandardItemModel 的 QListView。我需要这些项目来保存一些用户数据,通过扩展 QStandardItem 并添加我自己的数据可以正常工作。但我也希望可以通过拖动重新排序列表中的项目,问题就从这里开始了。似乎QT在丢弃它时克隆了它,复制了测试和颜色,但是它不知道我的用户数据。我尝试在 clone() 中解决它,但它只用项目原型(这是一个空项目)调用。我还尝试覆盖 setData() 函数并将角色 UserRole 用于我的用户数据,但拖动时也不会复制。

有没有人有类似的工作示例?

0 投票
2 回答
2915 浏览

c++ - 带有 QTreeView 模型的 Qt itemChanged 信号仅适用于第一级项目

我不知道我是否在我的 qt 代码中做错了什么。我只需要itemChanged每次在项目数据更改时发出该信号。我使用以下代码制作模型:

我想要,onChanged每次更改项目时都会调用它 - 例如,编辑项目文本或单击复选框。但在每种情况下,我itemChanged只在“item1-...”级别的项目(第一级项目)上触发了信号,而不是在 item2/3 级别的项目上。为什么?我怎样才能使它正确?

PS:与 QTreeWidget 相同的代码完美运行,但我在我的应用程序中使用多线程,我需要划分模型和视图。QTreeWidget 项不能在非 gui 线程中创建,qtreewidget 不能使用自创建模型。这就是为什么我必须将 QTreeView 与 QStandardItem 一起使用的原因。

0 投票
1 回答
386 浏览

python - QStandardItem 上的 Pyside setData 标志

我在这里有两个问题。

  1. 在哪里可以找到可以使用 QstandardItem 的 setData 方法设置的所有可用标志/属性的列表?我只知道下面的一个,因为我是在网上看到的。

  2. 如何将我的 QStandardItem 的字体设置为粗体?

Python