self.query1_window = QueryResultWindow() self.query2_window = QueryResultWindow() 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()这里怎么更改表格列名
时间: 2023-11-22 17:52:49 浏览: 56
你可以在表格创建后,使用setHorizontalHeaderLabels方法来设置表格的列名。例如:
```
self.query1_window.table_widget.setColumnCount(len(result[0]))
self.query1_window.table_widget.setHorizontalHeaderLabels(["列1", "列2", "列3"])
```
其中,["列1", "列2", "列3"]是你要设置的列名列表。你可以根据你的需求修改它。
相关问题
# 创建两个窗口用于展示查询结果 self.query1_window = QueryResultWindow() self.query2_window = QueryResultWindow()怎么添加筛选器
要添加筛选器,您需要先定义您想要使用的筛选器类型和条件。然后,您可以将这些条件应用于查询结果,并将结果显示在窗口中。
以下是一个简单的示例,演示如何将一个基于文本匹配的筛选器应用于查询结果:
```python
import re
class TextFilter:
def __init__(self, pattern):
self.pattern = pattern
def apply(self, result):
return [r for r in result if re.search(self.pattern, r)]
```
在这个例子中,我们定义了一个`TextFilter`类,它接受一个正则表达式模式作为输入,并将该模式应用于查询结果。对于每个匹配模式的结果,我们将其保留在列表中并返回。
现在,我们可以在查询结果窗口中使用这个筛选器:
```python
class QueryResultWindow:
def __init__(self):
self.filters = []
self.results = []
def add_filter(self, f):
self.filters.append(f)
def apply_filters(self):
filtered_results = self.results
for f in self.filters:
filtered_results = f.apply(filtered_results)
return filtered_results
def show(self):
filtered_results = self.apply_filters()
# display filtered_results in the window
```
在这个例子中,我们扩展了查询结果窗口类,添加了一个`filters`列表,这个列表包含应用于结果的所有筛选器。我们还添加了两个方法:`add_filter()`和`apply_filters()`。`add_filter()`方法将一个筛选器添加到`filters`列表中。`apply_filters()`方法将所有筛选器应用于结果,并返回过滤后的结果列表。
现在,假设我们有一个查询结果窗口实例`query_window`,并且我们想要添加一个基于文本匹配的筛选器,以仅显示包含单词“apple”的结果。我们可以这样做:
```python
apple_filter = TextFilter('apple')
query_window.add_filter(apple_filter)
query_window.show()
```
这将在查询结果窗口中显示所有包含单词“apple”的结果。您可以根据需要定义其他筛选器类型,并将它们添加到窗口中。
self.query1_window = QueryResultWindow() self.query2_window = QueryResultWindow() self.query3_window = QueryResultWindow() self.query4_window = QueryResultWindow() 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() if len(result) == 0: QMessageBox.information(self, "提示", "今日无员工工资记录") return # 清空表格 self.query1_window.table_widget.setRowCount(0) self.query1_window.table_widget.setColumnCount(len(result[0])) self.query1_window.table_widget.setHorizontalHeaderLabels( ["员工ID", "员工姓名", "日期", "领取鸡爪重量(KG)", "效率(每小时KG)", "出成率", "基础工资", "重量奖励", "当日总工资"]) # 添加数据到表格 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()显示窗口 self.query1_window.show()数据展示页面怎么设置筛选器按ID筛选结果并展示
你可以在查询数据时添加筛选条件,例如:
```python
db_sql = """SELECT * FROM table_name WHERE employee_id = 'your_id'"""
```
其中,`table_name` 为你的表名,`employee_id` 为你的员工ID列名,`your_id` 为你的员工ID。
然后,你需要将查询结果展示到表格中,你可以添加一个文本框和一个按钮,让用户输入ID并点击按钮进行筛选。具体实现可以参考以下代码:
```python
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.query1_window = QueryResultWindow()
# 添加文本框和按钮
self.id_edit = QLineEdit()
self.filter_btn = QPushButton("筛选")
self.filter_btn.clicked.connect(self.show_filtered_result)
# 布局
layout = QVBoxLayout()
layout.addWidget(QLabel("请输入员工ID:"))
layout.addWidget(self.id_edit)
layout.addWidget(self.filter_btn)
self.setLayout(layout)
def show_filtered_result(self):
# 获取输入的ID
employee_id = self.id_edit.text()
if not employee_id:
QMessageBox.warning(self, "提示", "请输入员工ID")
return
# 查询数据
db = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', db='jj_tset')
cursor = db.cursor()
db_sql = """SELECT * FROM table_name WHERE employee_id = '{}'""".format(employee_id)
cursor.execute(db_sql)
result = cursor.fetchall()
db.close()
# 判断结果是否为空
if len(result) == 0:
QMessageBox.information(self, "提示", "无该员工工资记录")
return
# 清空表格
self.query1_window.table_widget.setRowCount(0)
self.query1_window.table_widget.setColumnCount(len(result[0]))
self.query1_window.table_widget.setHorizontalHeaderLabels(
["员工ID", "员工姓名", "日期", "领取鸡爪重量(KG)", "效率(每小时KG)", "出成率", "基础工资", "重量奖励", "当日总工资"])
# 添加数据到表格
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()
```
其中,`MyWindow` 是你的主窗口,`QueryResultWindow` 是你的数据展示窗口。在 `__init__` 方法中添加了一个文本框和一个按钮,然后在 `show_filtered_result` 方法中获取输入的ID并拼接查询语句,最后将查询结果展示到表格中。请根据你的实际情况进行修改。