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

multithreading - 从非 UI QThread 修改 QStandardItemModel?

我有 Qt4 应用程序,它绑定QStandardItemModelQListView并从后台/非 UI 线程更新模型。

有时,当从非 UI 线程非常重复地调用QStandardItem'方法时,应用程序将在 la dataChanged(..) 处理程序处崩溃。我可以通过在 for 循环中重复setText(..)调用来重现该问题。setText("xxxxx")在我的应用程序中,数据是从网络读取的,因此我在单独的非 UI 线程中更新模型。

这是普通的pb吗?如果我理解正确,这与排队连接有关并且QStandardItemModel不是线程安全的?如何解决这个问题?

谢谢!

0 投票
2 回答
7582 浏览

qt - 在 c++ Qt 中对 QStandardItemModel 进行排序

我有一个 QStandardItemModel 类型的模型,如下所示:

现在我想像这样根据距离进行排序

但结果是错误的。有人可以告诉我如何排序吗?

谢谢。

0 投票
2 回答
921 浏览

qt - 在 QListView 中显示数据的问题

再会!

截屏

有 QListView 和 QTreeView 类的实例。这两个实例都从模型 (QStandardItemModel) 加载数据。QTreeView 显示职位(例如:主管、经理、开发人员等)。点击职位名称,显示的员工名单。

QListView 只显示员工的职位。

问题:如何在 QListView 中显示员工姓名的完整列表而不显示他们的职位?我需要重写哪些方法?在这种情况下你有什么建议?

PS谢谢!

0 投票
1 回答
273 浏览

qt - 无法将所有行附加到 QStandardItemModel

这是代码。

但是,它只设置了第一行项目..

0 投票
1 回答
1868 浏览

c++ - 在 QTreeView 中维护checkedstatus 继承

我正在尝试做一些基本的事情:你有一个QTreeView. 第一深度仅是文件夹,第二深度仅是文件。我想在每个项目旁边有一个带有选中状态的复选框。文件被选中或未选中,文件夹也可以根据文件进行部分检查;总而言之,我相信很自然。

我应该采用的方式是使用 a并使用:QStandardItemModel的自定义子类填充它。也许这是一个坏主意,如果有更简单的方法,请启发我。 QStandardItemDescriptionFileItem

我尝试使用信号和插槽,以便将CheckStateChanged文件上的信号连接到UpdateCheckedStateOnChildStateChanged其包含文件夹上的插槽。这也需要我DescriptionFileItem继承自QObject(顺便说一句,我很惊讶QStandardItem没有继承自QObject)。我最初希望这将与提供的基类无缝工作,但它没有:emitDataChanged()似乎没有触发我模型的 dataChanged() 信号......

直接使用模型的dataChanged信号也不起作用:它的调用是受保护的,所以你不能在没有子类化的情况下使用它(我认为这是我的下一步行动,除非有人能帮我把它弄好)。

目前我有一个信号 -> 插槽连接不起作用,我不知道为什么;编译和链接工作正常。这是代码;也许你会很容易发现我的错误。我留下了一些注释行,这样你就可以看到我在之前的尝试中做错了什么。感谢您的输入!

对应的 .cpp :

以及连接/树的构建:

编辑:最终答案,感谢 stu(见下文)

0 投票
1 回答
1243 浏览

qt4 - 模型中的数据未插入 QTableView

我试图TableView从模型中插入一些数据,但我做错了,因为没有插入数据。该表虽然更新了列和行。

所以我有一个GraphicsView我正在绘制一些自定义的地方GraphicsItems。每次将新项目添加到场景中时,模型都应该更新并向我发送信号以TableView将数据也插入其中。

在这里,我在添加新项目时更新模型:

Clothoids 是我的自定义图形项的列表:

信号连接到我的主窗口中的插槽:

插槽在哪里:

我究竟做错了什么?

0 投票
1 回答
5020 浏览

qt - 如何在 setModel() 方法之后将行追加到 QStandardItemModel?

愚蠢的问题,但是大约一个小时我找不到摆脱这种废话的方法。我有一个QTableView小部件,试图用QStandardItemModel. 在 ctor 之前

我运行这个函数:

PS:StandardItemList只是一个typedef QList< QStandardItem* > StandardItemList;


所以首先我做了一些addItem()'s ,然后setModel()所有的行都在表格中可见。但是当我稍后尝试附加另一行时(此时从单击的按钮开始),使用

我没有看到QTableView小部件的变化(其中没有新行,也没有新的 MyNewSection 数据)!我认为我必须以某种方式“更新”模型内容,但我无法从模型文档中找到正确的方法......

有什么帮助吗?

谢谢!

0 投票
2 回答
5903 浏览

qt - QTableView、QStandardItemModel 和信号

我有一个QTableView, 填充了一个QStandardItemModel.
我经常通过网络更新模型,并且模型也由用户直接通过QTableView.

现在我喜欢在用户更改一些数据时调用一个方法,所以我这样做了:

现在的问题是,我的dataChanged方法被调用,当项目通过网络更新时也是如此。

是否有另一个信号仅在用户更改QTableview???

0 投票
1 回答
1748 浏览

qt - QStandardItem 编辑后将 unsigned int 转换为 int

我用 QStandardItemModel 创建了一个 QTableview,在编辑 QStandardItem 后,类型从 unsigned int 更改为 int。这种行为只是发生在 unsigned int 上,并且在用户编辑它时,其他数据类型仍然存在。

窗口.cpp

窗口.h

0 投票
2 回答
5502 浏览

qt - 编辑开始时更改 QStandardItem 的文本

使用 Qt4 的模型/视图框架,我有一个显示为“Foo(38 条)”的项目列表。我想让文本可编辑,但是当用户开始编辑时,我希望控件只显示“Foo”(名称),然后在编辑完成后恢复额外的信息“(38 条)”。

我想我可以弄清楚如何重新添加信息,但是有没有办法在编辑开始时更改项目的文本?

该模型是一个 QStandardItemModel,并且项目是 QStandardItem 的相当琐碎的子类。它们主要显示在 QListView 中。

UI 是用 PyQt 编写的,我不想仅仅为此而深入研究 C++,但如果出现 C++ 解决方案,我会尽力翻译。