问题标签 [qstandarditemmodel]

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

c++ - 在 QStandardItemModel/QTreeView 中操作数据?

在我的项目中,我解析一个数据文件并根据该文件创建一个 QStandardItemModel,然后将其显示在 QTreeView 中。模型创建得很好,我知道如何在创建每个 QStandardItem 时为其设置某些参数。例如,我知道如何设置显示文本和图标。有没有一种方法可以创建“自定义容器”来在每个项目中存储“额外”数据?

从数据文件中读取并将其解析为我(相信)我可以做得很好的模型。然而,用户需要能够从 QTreeView 中编辑/操作模型。这包括添加和删除项目。这看起来很简单,但是,与该项目关联的一些数据不会显示在 QTreeView 中。在用户尝试编辑它之前,它有点……“隐藏”。用户需要双击一个项目来打开一个对话框,他们可以在其中编辑一大堆其他参数和数据(就像很长的字符串和东西,我不能只在 QTreeView 中显示的东西)。

我在试图找到一种方法来存储与树中每个项目有关的所有“额外数据”时遇到了很大的困难。最初,脑海中会浮现出各种各样的 QVector,但是在操纵模型的同时也操纵 QVector 是一种我无法理解的技术。

更糟糕的是,用户需要能够在不同的数据文件(又名模型)之间切换,同时仍保留对先前数据文件所做的任何编辑。

有任何想法吗?如果您有任何问题,请不要犹豫。我可以尽可能地澄清。:) 谢谢你的时间。

0 投票
1 回答
205 浏览

c++ - 标准项目模型 Qt

我认为模型可以共享多个视图,那么为什么我们将小部件传递给 QStandardItemModel 构造函数?

0 投票
1 回答
1468 浏览

python - 从文件路径列表中填充 QTreeView

这个问题之前有人问过:

https://stackoverflow.com/questions/26538667/pyqt-populate-qtreeview-from-txt-file-that-c​​ontains-file-paths

但似乎没有得到回应。

我有一个格式化的文件路径数据集,如下所示:

我正试图让他们填满一个 QTreeView (PySide)。我拥有的当前代码就是这样,带有一个简单的递归函数:

但是,因为我找不到任何方法来查看现有行的 QStandardItem,所以我在 UI 中得到了这个结果:

在此处输入图像描述

有没有办法在 QStandardItem 中查找重复行或遍历 QStandardItemModel 以找到现有的 QStandardItem?在过去的两天里,我一直在努力解决这个问题并试图找到一个现有的例子,但我真的无法理解这怎么可能是一个如此复杂的问题......

对此的任何帮助/建议将不胜感激!谢谢!

0 投票
1 回答
3217 浏览

python - 如何用值填充 QListView 并显示数据?

我正在做一个包含 QListView 的表单。它使用以下代码从数据库中填充:

我的 QListView 被命名为 listUser 并且 SELECT_USERS_ACCOUNTS() 函数返回由 select id,name from table_user 创建的数据,我也需要存储 row[0] (table_user 中的 id 列),因为当用户单击一个项目进入 QListView 时。我想捕获这个 ID。提前致谢。

0 投票
1 回答
8998 浏览

python-2.7 - 如何使用双击事件获取 pyqt qtreeview 项目子项?

我正在使用 PyQt4 和 python 2.7.9。我有一个包含来自 Oracle 数据库的数据的 QTreeView。代码是这样的:

SELECT_TREE_ALBUM(codus是专辑所有者的id)和SELECT_TREE_PHOTO是从数据库返回数据的函数。rowalb 1是专辑的名字,rowalb[0]是ID,rowalb[0]用来获取此相册的照片。图片显示此视图:

在此处输入图像描述

我想使用双击事件获取 childItem 数据(例如 1491475964461012、1491475821127693、1491475631127712、1491475141127761 或 1480407552234520)。我试图将这些代码放入构造函数中:

之后我添加了功能:

但有时我会看到 nodeItem 信息(例如“terror”或“fotos de perfil”)和其他一些我收到此错误:“AttributeError: 'NoneType' object has no attribute 'data'”。可能是什么问题?是填写 qtreeview 的问题吗?还是使用索引时双击事件功能的问题?请帮我。提前致谢。

0 投票
0 回答
584 浏览

qt - 实现树时将哪些参数传递给 beginInsertRows()。

我对 canFetch() 和 fetchMore() 函数有疑问。我正在实现树结构,当我滚动到最后时 canfetch() 将被调用,如果返回 true fetchMore() 将被调用,我们必须在其中获取数据并将项目插入树中。

请让我知道在 beginInsertRows 中,我们需要指定哪些数字,这让我很困惑..

我现在已经获取了一些数据,从顶部开始我有 5 个孩子,然后是 10 个父母,每个父母有 10 个孩子。(f_parent 父母已经有 5 个孩子)

现在我需要再插入 5 个孩子,然后是 10 个父母。

现在我需要在 beginInsertRows() 中准确指定哪些数字。

  • beginInsertRows(f_parent,5,f_parent.row()+10); ?
  • beginInsertRows(f_parent,f_parent.row(),f_parent.row()+10); ?
  • beginInsertRows(f_parent,5,10); ?
0 投票
1 回答
5323 浏览

qt - 从 QStandardItemModel 为 QTableView 获取项目

我有一个QTreeView其中每个节点代表一个数据对象。我设法将指向此数据对象的指针打包到 aQVariant中,以便我知道在树中选择了哪个。currentIndex()我可以通过函数访问节点。

树的根在QStandardItemModel::invisibleRootItem()。其他节点由父节点appendRow功能添加。所以项目没有rowcolumn我可以在QStandardItemModel::item().

有没有办法给节点有效坐标或检索没有坐标的项目。

0 投票
1 回答
1113 浏览

qt5 - QTree / QStandardItemModel 中的多个列

我的项目需要您的宝贵知识;)我需要制作一棵至少有 3 列的树。我所拥有的是一个“操作”列表,如下所示:

“动作”列表 (pListActions) 如下所示:

我可以用我的代码生成相应的树:

如您所见,我只有第一列,但我需要其他列。我尝试过使用 setItem 方法,但我不知道如何找到正确的行……事实上,我需要将一行的所有内容“链接”在一起;如果我插入一个新行,我想保持 ID 和相应的 ident/text 之间的链接。

我生成树的代码(第一列):

我想要的最终结果是:

0 投票
2 回答
3072 浏览

qt - qtreeview 的信号是什么改变了

有一个从 JSON 文件中获取的字典,由QTreeView QStandardItemModel.

用户可以重新组织QTreeView(添加、删除、拖放)和重命名项目。

目标是:调用读取 changedQTreeView的​​函数,制作字典并将其写入初始 JSON 文件。

我可以通过QPushButton在更改发生后按 a 或将该函数绑定到每个更改来做到这一点,例如删除项目时调用函数、添加项目时调用函数、重命名项目时调用函数等等。

如果发生任何变化,有什么方法可以调用函数吗?是否存在与所有提到的变化相对应的信号?

0 投票
1 回答
3793 浏览

selection - PySide QTreeView:打印选中项的名称

我正在尝试从 QTreeView 中获取所选项目的字符串。

我从这里的PAGE和 Qt 文档中获取了一些提示来尝试解决这个问题,但我没有取得任何进展。想法?

这是一个示例代码。我想这样做,所以如果我单击第 1 行,它将打印出“第 1 页”