我有一个 QTableWidget,其中包含数据库中的数据,我想实时搜索其内容(当我输入字母时,他会向我显示结果)?欢迎每一个帮助。多谢。
这是我的代码:
class Filter:
def __init__(self):
object.__init__(self)
self.db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
self.db.setDatabaseName("baza.db")
self.filter_model= QSortFilterProxyModel()
def sqlPodaci(self,okvir):
okvir.setObjectName("Okvir aplikacije")
okvir.resize(700,320)
line_edit = QLineEdit(okvir)
line_edit.setGeometry(20, 20, 205, 23)
self.tableWidget = QtWidgets.QTableWidget(okvir)
self.tableWidget.setGeometry(QtCore.QRect(20, 50, 620, 201))
self.tableWidget.setAlternatingRowColors(True)
self.tableWidget.setRowCount(3)
self.tableWidget.horizontalHeader().setVisible(True)
self.tableWidget.verticalHeader().setVisible(False)
###
self.filter_model.setFilterKeyColumn(1)
line_edit.textChanged.connect(self.filter_model.setFilterRegExp)
####
self.Ucitavanje_podataka()
Run Code Online (Sandbox Code Playgroud)
这是从数据库读取数据的代码:
def Ucitavanje_podataka(self):
status = self.db.open()
if status == False:
QtWidgets.QMessageBox.warning(self, "Error", self.db.lastError().text(), QtWidgets.QMessageBox.Discard)
else:
self.tableWidget.setColumnCount(6)
self.tableWidget.setHorizontalHeaderLabels(['Id','Ime','Prezime','Godine','Adresa','Plata'])
row = 0
sql = " SELECT * FROM Zaposleni"
query = QtSql.QSqlQuery(sql)
while query.next():
self.tableWidget.insertRow(row)
ID=QtWidgets.QTableWidgetItem(str(query.value(0)))
Ime = QtWidgets.QTableWidgetItem(str(query.value(1)))
Prezime …Run Code Online (Sandbox Code Playgroud)