我已经能够使用 QTableWidget 和 QTableWidgetItem 将数据库中的信息填充到 QTableWidget 中,基于搜索栏返回的文本。虽然我能够将搜索项的所有信息填充到表格窗口小部件中,但我无法持续地从搜索栏添加产品到表格窗口小部件中。相反,结果只是被覆盖和替换。这是我的代码示例。
# Defines Search Bar Button
def search_Bar(self):
searchFor = self.searchBar.text()
#print(searchFor)
searchQ = c.execute(" SELECT * FROM databasetable WHERE title LIKE ('%' || ? || '%') ", (searchFor,))
self.tableWidget.setRowCount(0)
for row_number, row_data in enumerate(searchQ):
self.tableWidget.insertRow(row_number)
for column_number, data in enumerate(row_data):
self.tableWidget.setItem(row_number, column_number, QTableWidgetItem(str(data)))
上面的代码可以得到我想要的结果,但是当我尝试添加多个项目到QTableWidget时,它会覆盖先前选择的项目。
是否可以在不覆盖先前选择的情况下设置setItem?我想创建一个所需搜索结果的表格。如果需要,我们希望有清空表格的选项。
setRowCount(0)
,表格就可以正常运行并按预期填充。我尝试了多种设置rowCount()
为row_number
的方法,但都无法找到实际将项目填充到表格中的解决方案。无论如何,我非常感谢您的知识,因为我最终还是让它工作了。 - Notmeomg