问题标签 [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.
multithreading - 从非 UI QThread 修改 QStandardItemModel?
我有 Qt4 应用程序,它绑定QStandardItemModel
到QListView
并从后台/非 UI 线程更新模型。
有时,当从非 UI 线程非常重复地调用QStandardItem
'方法时,应用程序将在 la dataChanged(..) 处理程序处崩溃。我可以通过在 for 循环中重复setText(..)
调用来重现该问题。setText("xxxxx")
在我的应用程序中,数据是从网络读取的,因此我在单独的非 UI 线程中更新模型。
这是普通的pb吗?如果我理解正确,这与排队连接有关并且QStandardItemModel
不是线程安全的?如何解决这个问题?
谢谢!
qt - 在 c++ Qt 中对 QStandardItemModel 进行排序
我有一个 QStandardItemModel 类型的模型,如下所示:
现在我想像这样根据距离进行排序
但结果是错误的。有人可以告诉我如何排序吗?
谢谢。
qt - 在 QListView 中显示数据的问题
再会!
有 QListView 和 QTreeView 类的实例。这两个实例都从模型 (QStandardItemModel) 加载数据。QTreeView 显示职位(例如:主管、经理、开发人员等)。点击职位名称,显示的员工名单。
QListView 只显示员工的职位。
问题:如何在 QListView 中显示员工姓名的完整列表而不显示他们的职位?我需要重写哪些方法?在这种情况下你有什么建议?
PS谢谢!
qt - 无法将所有行附加到 QStandardItemModel
这是代码。
但是,它只设置了第一行项目..
c++ - 在 QTreeView 中维护checkedstatus 继承
我正在尝试做一些基本的事情:你有一个QTreeView
. 第一深度仅是文件夹,第二深度仅是文件。我想在每个项目旁边有一个带有选中状态的复选框。文件被选中或未选中,文件夹也可以根据文件进行部分检查;总而言之,我相信很自然。
我应该采用的方式是使用 a并使用:QStandardItemModel
的自定义子类填充它。也许这是一个坏主意,如果有更简单的方法,请启发我。 QStandardItem
DescriptionFileItem
我尝试使用信号和插槽,以便将CheckStateChanged
文件上的信号连接到UpdateCheckedStateOnChildStateChanged
其包含文件夹上的插槽。这也需要我DescriptionFileItem
继承自QObject
(顺便说一句,我很惊讶QStandardItem
没有继承自QObject
)。我最初希望这将与提供的基类无缝工作,但它没有:emitDataChanged()
似乎没有触发我模型的 dataChanged() 信号......
直接使用模型的dataChanged
信号也不起作用:它的调用是受保护的,所以你不能在没有子类化的情况下使用它(我认为这是我的下一步行动,除非有人能帮我把它弄好)。
目前我有一个信号 -> 插槽连接不起作用,我不知道为什么;编译和链接工作正常。这是代码;也许你会很容易发现我的错误。我留下了一些注释行,这样你就可以看到我在之前的尝试中做错了什么。感谢您的输入!
对应的 .cpp :
以及连接/树的构建:
编辑:最终答案,感谢 stu(见下文)
qt4 - 模型中的数据未插入 QTableView
我试图TableView
从模型中插入一些数据,但我做错了,因为没有插入数据。该表虽然更新了列和行。
所以我有一个GraphicsView
我正在绘制一些自定义的地方GraphicsItems
。每次将新项目添加到场景中时,模型都应该更新并向我发送信号以TableView
将数据也插入其中。
在这里,我在添加新项目时更新模型:
Clothoids 是我的自定义图形项的列表:
信号连接到我的主窗口中的插槽:
插槽在哪里:
我究竟做错了什么?
qt - 如何在 setModel() 方法之后将行追加到 QStandardItemModel?
愚蠢的问题,但是大约一个小时我找不到摆脱这种废话的方法。我有一个QTableView
小部件,试图用QStandardItemModel
. 在 ctor 之前
我运行这个函数:
PS:StandardItemList
只是一个typedef QList< QStandardItem* > StandardItemList;
所以首先我做了一些addItem()'s
,然后setModel()
所有的行都在表格中可见。但是当我稍后尝试附加另一行时(此时从单击的按钮开始),使用
我没有看到QTableView
小部件的变化(其中没有新行,也没有新的 MyNewSection 数据)!我认为我必须以某种方式“更新”模型内容,但我无法从模型文档中找到正确的方法......
有什么帮助吗?
谢谢!
qt - QTableView、QStandardItemModel 和信号
我有一个QTableView
, 填充了一个QStandardItemModel
.
我经常通过网络更新模型,并且模型也由用户直接通过QTableView
.
现在我喜欢在用户更改一些数据时调用一个方法,所以我这样做了:
现在的问题是,我的dataChanged
方法被调用,当项目通过网络更新时也是如此。
是否有另一个信号仅在用户更改QTableview
???
qt - QStandardItem 编辑后将 unsigned int 转换为 int
我用 QStandardItemModel 创建了一个 QTableview,在编辑 QStandardItem 后,类型从 unsigned int 更改为 int。这种行为只是发生在 unsigned int 上,并且在用户编辑它时,其他数据类型仍然存在。
窗口.cpp
窗口.h
qt - 编辑开始时更改 QStandardItem 的文本
使用 Qt4 的模型/视图框架,我有一个显示为“Foo(38 条)”的项目列表。我想让文本可编辑,但是当用户开始编辑时,我希望控件只显示“Foo”(名称),然后在编辑完成后恢复额外的信息“(38 条)”。
我想我可以弄清楚如何重新添加信息,但是有没有办法在编辑开始时更改项目的文本?
该模型是一个 QStandardItemModel,并且项目是 QStandardItem 的相当琐碎的子类。它们主要显示在 QListView 中。
UI 是用 PyQt 编写的,我不想仅仅为此而深入研究 C++,但如果出现 C++ 解决方案,我会尽力翻译。