问题标签 [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.
python - 使用 Qt 和 Python 在 QTableView 中使用 QCompleter
我正在阅读如何使我的 QAbstractTableModel 可编辑,它看起来非常简单。
但是如何设置一个可编辑的单元格来使用 QCompleter?我以某种方式必须告诉 QTableView 使用 QLineEdit 小部件?我怎样才能做到这一点?
编辑:嗯,我猜它与QTableView.setItemDelegateForColumn()有一些关系,但我对代表或如何使用它们一无所知。
编辑:我尝试了 RobbieE 的解决方案,得到了一些可行的方法,但是当我按下 Enter 时,它使弹出组合框的几何形状错误并导致 Python 崩溃。
我的 _completerSetupFunction 看起来像这样:
c++ - QTableView 检查字符串是否已经存在
我有一个程序将字符串放入带有模型/视图的 TableView 中。我的模型来自 QAbstractTableModel,我的视图来自 QTableView。它在我的模型中按名称排序setData()
:
现在我会检查我要添加的字符串是否已经存在于我的表中,当它存在时我不会添加它。我QTableWidget
可以it
这样做:
但是对于 QTableView 我不知道。我应该怎么办 ?
然后我的表中总是有复选框,但我从未添加它们。当我添加 1 时,它会使复选框自动变为蓝色。
这是一个指向方法的链接,它的工作方式非常奇怪:View::PushButtonClicked
qt - 返回 QAbstractTableModel headerData 中的行号
我正在使用 QTableView 和 QAbstractTableModel。即使在过滤和排序之后,我也可以在垂直标题中获得有序的行号吗?
python - 如何在保留标头的同时使用空的二维数组初始化 QAbstractTableModel
我将用一个小例子来演示我的问题:
请注意,我__init__
对 TaskModel 类有两行函数,第一行给出 [[" ", " ", " ", " "]] 作为 __task 的默认数据集,第二行给出 [[]]。
第一个工作正常:
除了有一个不需要的行坐在底部。
第二个__init__
函数在尝试删除不需要的行时,使用 [[]] 作为默认数据集,但结果是灾难性的:
如何删除不需要的底行,同时仍使其正常工作(使用标题和所有内容)?
python - PySide:将 QAbstractListModel 与 QListView 一起使用
我在 python 中对 QAbstractListModel 有一点问题。我正在尝试创建自己的模型。问题是视图不显示我的值列表。
运行此脚本后,我在列表视图中看不到任何内容。
python - 如何从模型内部选择 QTableView 索引或行
发布的代码创建了一个Model/Proxy
QTableView
. 已为其启用了多选功能。
总共有四个项目。其中两个包括字符“A”。其他两个在其“项目”名称中包含字符“B”。
QPushButton
按下时调用该clicked()
方法。调用此方法时,首先查询Proxy Model
连接到QTableView
:
然后该方法要求 aproxyModel
返回总行数:
知道 a 的模型中有多少行,QTabelView
它会迭代每一行。首先它是查询一个行索引:
知道它继续通过调用方法index
来请求存储在变量中的值,并为它提供上一步中查询的 a (这里是变量)和标志。self.items
data()
QModelIndex
index
Role
'toPyObject()' 用于将从.data()
方法接收到的数据转换为“常规”Python 变量。
最后它检查接收到的字符串中是否有字符“ B ”。如果是这样,它使用以下命令选择 QTableView 行:
现在我想要的是从代理模型的范围内获得相同的选择功能,filterAcceptsRow()
如果可能的话。
如果不可能,我想知道是否有其他方法可以做到这一点……我应该使用QItemSelectionModel
吗?那怎么办?
c++ - 使用正确的语言环境从 QSQLTableModel 获取 CSV
我正在尝试将填充了 QSQLTableModel 数据的 QTableView 转换为 CSV 文件。我当前的代码如下(实际上与此处发布的代码相似):
这完美地工作,除了区域设置不正确,即双打,日期等中的点/逗号。应用程序区域设置是正确的,但是,QTableView 正确显示所有内容。
有什么方法可以设置 QLocale 或在转换 QVariant::toString 时以某种方式使用它???
python - 如何使用python隐藏QTableView中的复选框?
我对 python 和 Qt 都很陌生。我想使用QTableView
tableview 的单元格中出现的不带复选框,但似乎它们只是默认出现在那里。正如我到目前为止发现的那样,您只需停用该Qt.ItemIsUserCheckable
标志。但是我该怎么做呢?我尝试以这种方式在派生模型类中使用QAbstractItemModel l的标志 - 函数:QAbstractTableModel
所以,我所做的是:只是不返回Qt.ItemIsUserCheckable
标志。这适用于例如Qt.ItemIsEditable
使单元格可编辑或不可编辑的标志(当它未返回时),但使用ItemIsUserCheckable
标志执行此操作对复选框没有影响。所以我的问题是:我怎样才能摆脱使用 python 的复选框?请帮忙!
qt - 带有自定义模型和大数据的 Qt5 QTreeView 滚动非常慢
我有需要在 QTreeView 中显示的自定义数据。我从 QAbstractTableModel 派生了我的模型,并自己实现了 rowCount()、columnCount()、data() 和 headerData()。该模型有一个本地 QList> 来支持它,并且定义了 data() 函数以从与 QModelIndex 参数中接收的行和列直接对应的列表列表中读取值。我遇到了两个问题。
首先是一个非常大的文件的加载速度非常慢,这是可以理解的。第二个是滚动动作非常缓慢,我不是很理解。事实证明,如果我拉下滚动手柄,GUI 会挂起大约 20 秒,然后弹回来。如果我将手柄拉下更远的距离,则挂起时间会相应增加。如果我将手柄一直拉到滚动条的底部,在等待应用程序再次响应后,我可以上下拉动手柄并获得更好的响应。
在我看来,QTreeView 只要求一小部分可用数据,但是当我将滚动句柄一直拉到滚动条的底部时,一旦应用程序再次响应,到那时它已经读取所有的数据。
有没有办法通过滚动大数据来获得响应更快的体验?我不介意预先等待更长的时间,所以像强制视图预先从模型中读取所有数据这样的事情就可以了。
我还认为我可以回到仅从 QAbstractItemView 派生并控制它如何请求和存储数据的方式,只允许存储查看的数据,以及查看数据之前和之后的条目缓冲区。这当然意味着我必须控制滚动条,因为句柄大小会指示少量数据,我希望它能够像用户一样查看他们正在处理的数据大小。如果我不需要的话,我真的不想去那里。
c++ - 如何通知模型/视图底层数据更改了表头?
我刚刚构建了一个TableModel
基于QAbstractTableModel
. 有效,但基础数据可以更改列和行的标题,我不知道如何通知模型和视图(以便视图刷新标题)。
如果我更改垂直标题(在数据中)然后插入一列(通过视图-> 模型),标题正在更新。我用beginInsertingX
一些特殊的方式来强制更新?