1

我使用 QSqlRelationalTableModel 创建了一个单字段表视图。此表视图中的唯一字段取自具有一长串名称的表(mysql)。当我在与查询“like”逻辑连接的字段中写入名称时,创建自动完成的正确方法是什么。

self.model = QtSql.QSqlRelationalTableModel()

self.model.setTable("archlibri")
self.model.setHeaderData(0, QtCore.Qt.Horizontal, "ID")
self.model.setHeaderData(1, QtCore.Qt.Horizontal, "Autore")
self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Titolo")
self.model.setRelation(1, QtSql.QSqlRelation("elAutori", "aID", "aNome"))
self.model.select()

tabella.setModel(self.model)       

tabella.setItemDelegate(QtSql.QSqlRelationalDelegate(tabella))

Tabella 是一个 QTableView。“Autore”列(列有关系委托)是我想在写名字时添加自动完成的地方

4

1 回答 1

0

根据您的作者字段是什么类型的字段,您必须实现一个查询,该查询从数据库中选择作者姓名以及用户输入的内容。例如。Hemingw... 查询选择... where.. 名称如 %placeholder。返回的值将设置为 ui 中的作者字段。您需要与更改的信号数据一起执行此操作。

于 2021-11-27T08:46:07.717 回答