Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在PyQt4中对QTableView项排序时出现问题_Python_Pyqt4 - Fatal编程技术网

Python 在PyQt4中对QTableView项排序时出现问题

Python 在PyQt4中对QTableView项排序时出现问题,python,pyqt4,Python,Pyqt4,我已经创建了一个QTable视图并将其连接到QSqlTableModel,我正在显示从数据库检索到的查询结果。在QTable视图中,我启用了sortEnabled选项。所有预期结果都在打印中,但如果单击排序指示器 表中的所有数据都将被清空。有谁能建议我如何克服这个问题吗 这是结果表的快照 这是按下排序指示器后结果表的快照 有谁能建议我如何克服这个问题吗?要想弄清楚为什么QTableView的setSortingEnabled方法不起作用,QabstracteModel中的排序方法没有实现。所

我已经创建了一个QTable视图并将其连接到QSqlTableModel,我正在显示从数据库检索到的查询结果。在QTable视图中,我启用了sortEnabled选项。所有预期结果都在打印中,但如果单击排序指示器 表中的所有数据都将被清空。有谁能建议我如何克服这个问题吗

这是结果表的快照

这是按下排序指示器后结果表的快照


有谁能建议我如何克服这个问题吗?要想弄清楚为什么QTableView的setSortingEnabled方法不起作用,QabstracteModel中的排序方法没有实现。所以你必须自己去实现它

一种解决方案是创建一个QAbstract视图。下面是一个例子


我不确定这是否是实现sort方法的最佳方法,但我找不到任何其他方法,这似乎对我有用。

我想你建议的是创建一个自定义模型子类,而不是视图,对吗?根据您的代码片段,视图保持不变。只是模型得到了一个自定义的排序方法。还有<代码>QSqlTableModel实现排序。
qabstractemmodel
不可用。所以我不确定这就是原因。@jdi您是对的,视图没有变化,但是QabstractemModel将实现它的排序,这将排序请发布代码,仅凭图像很难说出发生了什么