问题标签 [qabstracttablemodel]
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.
c++ - 在 QAbstractTableModel 中使用多个线程之间共享的数据
我有一个使用Q_GLOBAL_STATIC
包含必须从多个线程访问的数据结构的单例类实现,我在类中实现了访问器函数,它将在访问数据之前锁定互斥锁,以便对共享数据的所有访问都被序列化。
问题是我想QAbstractTableModel
在data()
. 但我认为这还不够,因为在对另一个线程的两个后续调用之间可能会跳入并更改项目的数量,例如 ( ),并且模型的线程最终可能会访问越界数据。columnCount()
rowCount()
data()
rowCount()
columnCount()
我想我需要在模型重置的第一次调用和模型重置之前锁定互斥锁rowCount()
,并且只有在将所有数据读入模型时(在最后一次调用之后data()
)才解锁它,有没有办法这样做?还是我想错了?
我想在模型重置时将共享数据结构复制到本地数据结构(并且仅在复制操作上锁定互斥锁),然后安全地访问复制的数据,但这不是矫枉过正吗?没有更有效的解决方案吗?
qt - 在 QTableView 中设置焦点
我有一个QMainWindow
包含 aQTableView
作为它的中心小部件。
我QTableView
通过设置模型(派生自QAbstractTableModel
)来填充它。
的选择行为QTableView
设置为 QAbstractItemView::SelectRows
。这意味着如果我单击一个单元格,则会选择整行(并突出显示)。
我希望能够以QTableView
编程方式聚焦/突出显示一行。换句话说,我想在没有用户点击的情况下聚焦/突出显示一行。如何做到这一点,我是否“伪造”了单元格中的点击?
c++ - 使用未显示的值(例如 ID)搜索 QTableView
设想:
说,我有一个人班
我正在使用的模型类;继承 QAbstractTableModel - MyCustomModelClass : QAbstractTableModel
。MyCustomModelClass
有对人员列表的引用。人员列表在MyAllData
我的模型类之外的类中维护。
该表不显示人员的 ID 号。但它是唯一可以用来单独识别一个人的东西。如果我想用 ID 搜索我的表数据,那我该怎么做?
qt - 按接口继承接口的正确方法
我有界面class IHistory
。我想实施QAbstractTableModel
。我的代码调用undefined reference to vtable
错误,它不能通过运行来修复qmake
。
(ihistory.h)
在孩子班我写(history.h):
有没有正确的方法,或者我应该QAbstractTableModel
实施class History
?
qt - QTableView - 覆盖 QAbstractTableModel 中的 CSS
我正在为我们的产品使用常见的 css,它具有 QTableView 的模板,如下所示
在一种情况下,我想将 QTableView 的文本颜色更改为红色。我是通过遵循 QAbstractTableModel 的数据函数中的代码来实现的
但是,文本的颜色并没有改变,它是从 CSS 中获取颜色的。任何帮助,将不胜感激。
qt - 更改 QTableView 的默认选择颜色
我正在使用带有 QAbstractTableModel 的 QTableView。
我已经QAbstractTableModel
在我的模型类中进行了子类化,Qt::BackgroundRole
并且Qt::ForegroundRole
根据某些条件返回了一些颜色。
我有子QTableView
类。
当我选择表格上的任何行/单元格时,行/单元格以 tabelVeiw 的默认颜色突出显示,它不显示从我的模型类返回的颜色。
我怎样才能改变这种行为?我怎样才能避免/忽略这种默认颜色,QTableView
并且只有我的模型类返回的颜色?
c++ - Qt:客户类构造函数的未定义引用
我正在使用一个自定义类,GpibDevicesModel
继承自QAbstractTableModel
,编译器说构造函数上有一个未定义的引用。但我不明白为什么。
这是代码:
主窗口.h
主窗口.cpp
GpibDevicesModel.h
GpibDevicesModel.cpp
这是来自编译器的错误消息
我认为这将是一件愚蠢的事情,一如既往......但我无法弄清楚这个错误。我以同样的方式使用另一个自定义模型,我没有任何问题。
qt - Qt - 项目模型/视图 - QTableView 一个单元格中的多个数据
我正在尝试在 C++ 和 QT 中使用模型/视图架构,需要了解如何将 QTableView 中的一个单元格划分为更多行或更多列并为它们使用不同的小部件以及如何仅显示一些列从模型。
我想每行保持这个结构:
重要的是:
- 在 2D 表格中显示(例如 QTableView) - 没有树。我可以更改模型,但我需要在表格中显示它。
- 仅显示模型中的一些数据。
- 根据行索引 - 从父项中选择一些列,并从子项(结构)中选择一些数据。
我有几个问题:
- 如何在一个 QTableView 单元格中实现更多的行/列,并为它们使用不同的类型和不同的 QWidget?
- 如何只选择一些我想在视图中显示的数据?当我在模型中重新实现“columnCount”时,我不能把常量放在那里,因为我想在不同的视图中使用这个模型。我阅读了教程,发现没有必要重新实现视图类。如何只选择我想显示的数据?
- 在这种情况下使用 3D 模型(QStandardItemModel 和 QStandardItems)还是 2D 模型(QAbstractTableModel)更好?
c++ - 如何在 QTableview 的单元格中呈现用户定义的小部件(不使用 qml)
这几天遇到一个关于qt的问题。我想在我的 qt 应用程序中使用 QTableview 显示一个批处理数据(不是 qml gridview,因为我的应用程序使用小部件)。每个数据项包括一个图像和一个图像名称。我需要让图像显示在一个 qlabel 上,它的名称显示在另一个 qlabel 上。这两个小部件应该显示在我的自定义框架上。然后我会让用户定义的框架显示在每个 QTableView 的单元格中。
从 BigBourin(他也问了类似的问题),我知道我应该实现一个自定义委托,并重新实现painter 函数,就像这样:
我的问题是 item_widget.SetPackageName(index.data(Qt::DisplayRole).toString());
数据从哪里来?数据可以是用户定义的数据类吗?
c++ - QAbstractTableModel 和 Unicode(德语变音符号)
我有一个 Unicode 问题。德语字母ä
,ü
和ö
仅ß
显示为黑色菱形中的白色问号。我QAbstractTableModel
在 Qt5.5.1 中做了一个。
我的文档是 UTF-8 编码的。我已经尝试过了,但我仍然遇到同样的问题。
有没有人知道如何正确显示这些字符?
编辑:是的,我需要一个字符串,在这个例子中我只使用了一个字符。
感谢 Adriano Repetti,这就是解决方案: