【发布时间】:2018-02-16 03:35:41
【问题描述】:
我想按字母顺序对 QTableView 中的项目进行排序。我已经搜索了互联网,但一切都在脉络中,我发现的那些仅限于按升序或降序排序并使用抽象模型,但在我的情况下,这些项目是从数据库中获取的。 我什至没有明确的代码,因为我没有找到任何相关的解决方案。我所拥有的只是这段代码,运行时会出错
database = QtSql.QSqlDatabase().addDatabase('QSQLITE')
database.setDatabaseName('database.db')
database.open()
self.table_model1 = QtSql.QSqlQueryModel()
self.table_model1.setQuery("SELECT * FROM Individuals ")
self.tableView1.setModel(self.table_model1)
self.table_model1.setHeaderData(0, QtCore.Qt.Horizontal, "Name")
self.table_model1.setHeaderData(1, QtCore.Qt.Horizontal, "Tel No.")
self.table_model1.setHeaderData(2, QtCore.Qt.Horizontal, "Email")
self.tableView1.horizontalHeader().setVisible(True)
self.tableView1.setSortingEnabled(True)
self.tableView1.horizontalHeader().sortIndicatorChanged.connect(self.sort_table1)
def sort_table1(self):
self.tableView1.sortByColumn(0, QtCore.Qt.OrderedAlphaDither)
【问题讨论】:
-
你可以展示你是如何实现你的模型的,你的输入是什么,你的输出是什么。
-
Qt.OrderedAlphaDither 是用于其他任务的标志,它不适用于排序,该标志用于 QImage
-
将 Qt.OrderedAlphaDither 更改为 Qt.AscendingOrder
-
它保持不变。这是我之前尝试过的代码,但无济于事
标签: python pyqt pyqt5 qtableview