def show_query1_result(self): # 查询数据 db = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', db='jj_tset') cursor = db.cursor() db_sql = """ """ cursor.execute(db_sql) result = cursor.fetchall() db.close() # 清空表格 self.query1_window.table_widget.setRowCount(0) self.query1_window.table_widget.setColumnCount(len(result[0])) # 添加数据到表格 for row_num, row_data in enumerate(result): self.query1_window.table_widget.insertRow(row_num) for col_num, col_data in enumerate(row_data): self.query1_window.table_widget.setItem(row_num, col_num, QTableWidgetItem(str(col_data))) # 显示窗口 self.query1_window.show()数据展示页面怎么设置筛选器按ID筛选结果并展示
时间: 2023-07-16 14:16:06 浏览: 72
解决pymysql cursor.fetchall() 获取不到数据的问题
你可以添加一个筛选器控件,例如QComboBox,让用户选择要按哪个字段进行筛选。然后在查询按钮的槽函数中,根据用户选择的字段构建SQL语句,再执行查询操作,并将结果展示在表格中。
以下是示例代码:
```python
from PyQt5.QtWidgets import QComboBox
class Query1Window(QWidget):
def __init__(self):
super().__init__()
self.table_widget = QTableWidget(self)
self.filter_combo = QComboBox(self)
self.filter_combo.addItems(['ID', 'Name', 'Age']) # 添加筛选器选项
self.query_btn = QPushButton('Query', self)
self.query_btn.clicked.connect(self.show_result)
def show_result(self):
# 获取用户选择的筛选字段和筛选值
filter_field = self.filter_combo.currentText()
filter_value = self.filter_line_edit.text()
# 构建SQL语句
db_sql = f"SELECT * FROM jj_tset WHERE {filter_field}='{filter_value}'"
# 执行查询操作
db = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', db='jj_tset')
cursor = db.cursor()
cursor.execute(db_sql)
result = cursor.fetchall()
db.close()
# 清空表格
self.table_widget.setRowCount(0)
self.table_widget.setColumnCount(len(result[0]))
# 添加数据到表格
for row_num, row_data in enumerate(result):
self.table_widget.insertRow(row_num)
for col_num, col_data in enumerate(row_data):
self.table_widget.setItem(row_num, col_num, QTableWidgetItem(str(col_data)))
# 显示窗口
self.show()
```
需要注意的是,上述代码并没有添加筛选值的输入控件,你可以根据需要自行添加。另外,由于SQL注入等安全问题,建议使用参数化查询来构建SQL语句。
阅读全文