self.query1_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() class QueryResultWindow(QWidget): def __init__(self): super().__init__() # 设置窗口大小 self.setFixedSize(800, 600) self.setWindowFlags(Qt.WindowMinimizeButtonHint | Qt.WindowMaximizeButtonHint | Qt.WindowCloseButtonHint) self.download_btn = QPushButton('下载数据', self) self.download_btn.clicked.connect(self.download_data) # 创建表格控件 self.table_widget = QTableWidget() self.table_widget.setEditTriggers(QTableWidget.NoEditTriggers) self.table_widget.setSelectionBehavior(QTableWidget.SelectRows) # 创建窗口布局 layout = QVBoxLayout() layout.addWidget(self.table_widget) self.setLayout(layout)这个界面 怎么添加一个在数据展示界面下载所有数据的按钮
时间: 2023-11-22 07:55:07 浏览: 128
你可以在 QueryResultWindow 类的 __init__ 方法中添加一个下载按钮,并连接到下载数据的方法 download_data。具体实现代码如下:
```
class QueryResultWindow(QWidget):
def __init__(self):
super().__init__()
# 设置窗口大小
self.setFixedSize(800, 600)
self.setWindowFlags(Qt.WindowMinimizeButtonHint | Qt.WindowMaximizeButtonHint | Qt.WindowCloseButtonHint)
# 创建表格控件
self.table_widget = QTableWidget()
self.table_widget.setEditTriggers(QTableWidget.NoEditTriggers)
self.table_widget.setSelectionBehavior(QTableWidget.SelectRows)
# 创建下载按钮
self.download_btn = QPushButton('下载数据', self)
self.download_btn.clicked.connect(self.download_data)
# 创建窗口布局
layout = QVBoxLayout()
layout.addWidget(self.table_widget)
layout.addWidget(self.download_btn)
self.setLayout(layout)
def download_data(self):
# 获取表格数据
rows = []
for row in range(self.table_widget.rowCount()):
row_data = []
for column in range(self.table_widget.columnCount()):
item = self.table_widget.item(row, column)
if item is not None:
row_data.append(item.text())
else:
row_data.append('')
rows.append(row_data)
# 将数据写入 CSV 文件
file_path, _ = QFileDialog.getSaveFileName(self, '保存文件', '', 'CSV Files (*.csv)')
if file_path:
with open(file_path, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(rows)
```
这样,在数据展示界面就会有一个名为“下载数据”的按钮,点击即可将数据以 CSV 格式保存到本地文件中。需要注意的是,该实现需要导入 csv 和 QFileDialog 模块。
阅读全文