问题标签 [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.
python - pyqt4:使 Qtableview 反映调用 QStandardItem.setData 后的更改
我正在尝试使用 pyqt4 构建一个 gui,但在更新字段时遇到了问题,Qtableview
这是我的代码:
现在我面临的问题是表格仍然在第一列显示“123”。为了让表格反映变化,我缺少什么?
c++ - 比较表项的检查状态
我已经设置了一个 QStandardItemModel 并使用来自另一个查询数据库的模型的数据填充它。该模型用于我向用户显示信息的表格视图中。第一列是“复选框”字段,用户可以选中或取消选中。下面是我用来设置“显示”模型的代码(我添加了注释以显示复选框的添加位置)
在用户交互之后,我遍历表中的每一行以检查哪些行已被检查,以便我可以使用相应的信息。
我遇到的问题和疑问是,即使未选中复选框,也始终满足“if”条件。
c++ - QStandardItemModel:添加一批项目的任何有效方法?
有没有什么有效的方法可以将一批QStandardItem
s 添加到模型中?模型正在被清除,然后我添加了很多项目。QtreeWidget
仅addTopLevelItems ( const QList<QTreeWidgetItem *> & items )
此而已,如何使用模型/视图架构优化此类添加?
qt - 由于“重复项目”而将空行插入表中
我有一个表格视图,它需要多行的相同信息,但是这些行一直显示为空,并且出现相同的日志消息
基本上,我遍历模型设置以包含所有信息并获取每个索引处的值以填充附加到表的另一个模型。每次循环迭代时,我都尝试将每个索引分配给一个变量(这似乎有点矫枉过正)
是否有一种正确/更有效的方法来解决这种“重复插入”,还是我看错了?
谢谢
qt - 带有小部件和文本的 QStandardItemModel 标头
我需要使用带有文本的复选框,例如“全选”:
在 QStandardItemModel 的标头中。我试过这样
这种方式仅适用于项目而不适用于标题,我的意思是如果我使用项目
我听说要编写自己的继承 QHeaderView 的类,但我不知道这是否有助于解决我的问题。我想问是否有一种简单的方法可以实现这一目标?
问候
c++ - 在 QStandardItemModel 中按字母顺序对列进行排序:QSortFilterProxyModel
我正在尝试QStandardItemModel
按字母顺序对特定列中的项目进行排序。为此,我使用了一个派生自的类,QSortFilterProxyModel
并且我正在重新实现该lessThan
方法
这是我将模型附加到代理模型的方式
将项目添加到模型后,我要做的是排序
但是,该列未排序。有什么建议么?
qt - 使用 QTreeView 和 QStandardItemModel 的应用程序没有赶上
我正在开发一个程序(notifyfs),它负责缓存目录条目并观察底层文件系统的变化。缓存存储在共享内存中,(gui)客户端可以很容易地使用缓存。
服务器(notifyfs)和客户端之间的通信可以使用套接字或通过共享内存自身,通过共享互斥锁和条件变量。
当客户端想要加载目录时,它会执行以下操作:
一个。选择一个“视图”,它是共享内存中的一个数据结构,它由一个共享互斥体、条件变量和一个小队列(数组)组成,用于与客户端通信添加/删除/更改事件。
湾。客户端用它在共享内存中找到的内容填充他/她的模型
C。向服务器发送一条消息,其中包含对视图的引用,以及它想要加载其内容的路径的指示。这可能是一个路径,但如果可能的话是父条目。
d。服务器接收消息(进行一些检查),在目录上设置监视,并同步目录。当目录尚未在缓存中时,这意味着它检测到的每个条目都存储在缓存中。这样做时,它会向视图(共享内存中的数据)发出信号,添加一个条目,并将此事件存储在数组/队列中。
e. gui 客户端有一个特殊的线程,它使用 pthread_cond_wait 调用不断地在共享内存中监视此视图以进行更改。这个线程是一个特殊的io线程,可以发送三个信号:entry added、entry remove和entry changed。它从数组队列中读取的正确参数:对条目的引用以及操作是什么。这三个信号连接到我的模型中的三个插槽,该模型基于 QStandardItemModel。
这完美地工作。它非常快。在测试它时,我有很多调试输出。在删除这些以在没有这个额外缓慢的 io 的情况下对其进行测试后,看起来 QTreeView 无法赶上这些变化。当加载一个目录时,它会加载它的三分之二,而当要加载另一个目录时,它会越来越少。
我已经使用 Qt::QueuedConnection 将来自特殊线程的不同信号连接到模型。
在某一行添加一行是使用 insertRow(row, list) 调用完成的,其中 row 当然是行,而 list 是项目的 QList。
我一直在寻找这个问题一段时间,发现所有的变化都被特殊的 io 线程检测到,并且模型接收到了信号。仅以某种方式未收到到 QTreeView 的信号。我一直在想,我是否必须将模型信号和树视图的接收槽之间的通信也设置为“Qt::QueuedConnection”?也许还有别的?
python - 当我从模型中读取项目时,项目从组合框中消失
我有QComboBox
并且我设置了QStandardItemModel
,因为我需要其中的多选复选框。问题是当我读取文本值并检查组合框中项目的状态时,它们会从组合中消失。
这就是我将模型设置为组合框的方式:
这就是我从组合框读取数据的方式:
这是我从组合框中读取数据之前和之后的屏幕截图:
...结果我得到了,正如预期的那样:
此外,是否有简单的方法在组合框处于非活动状态时不显示“区域一”(我只想看到右角的箭头,如第二张图片)或设置其他要显示的文本,如“选择区域”?
c++ - QListView 中的 QT 超链接
使用 Qt,我创建了一个包含QListView
小部件的 gui。
这个小部件从一个QStandardItemModel
由两列组成的对象提供数据:
- 描述;
- 和超链接
我想要做的是实际上在那里有一个带有超链接的描述,该超链接QListView
使用用户的默认浏览器打开页面。
到目前为止,我尝试的是使用 HTML 实际构建数据,但是这只产生了未渲染的纯 HTML 文本。
任何人都可以帮忙吗?
编辑以显示使用的代码:
用于构建模型的代码:
“QPushButton”用于使用模型的代码
qt - 一个 QTableView 单元格中带有图像的超链接
我有一个带有自定义模型和委托的 QTableView。任务是创建包含图像和超链接的单元格。通过单击图像用户将超链接复制到剪贴板,并通过单击超链接用户应该在浏览器中打开链接。
这是一个可能的任务吗?