def query(self,sql): # 执行 SQL 查询语句 self.cursor.execute(sql) # 创建一个新窗口,并设置其属性 new_window = QWidget(self) new_window.setWindowTitle("查询员工信息") new_window.setGeometry(200, 200, 400, 300) # 创建返回按钮并设置其属性 return_button = QPushButton("返回", new_window) return_button.setGeometry(10, 10, 50, 30) return_button.clicked.connect(new_window.close) # 获取查询结果并显示在表格中 rows = self.cursor.fetchall() self.table = QTableWidget() if rows: self.table.setRowCount(len(rows)) self.table.setColumnCount(len(rows[0])) for i, row in enumerate(rows): for j, col in enumerate(row): item = QTableWidgetItem(str(col)) self.table.setItem(i, j, item) self.table.setHorizontalHeaderLabels(["部门", "姓名", "性别", '职位', '工号', '状态']) self.table.horizontalHeader().setVisible(True) new_window.setLayout(self.v_layout) new_window.show()查错
时间: 2024-01-14 12:02:51 浏览: 94
django执行原始查询sql,并返回Dict字典例子
抱歉,你的代码中没有明显的错误,但是我注意到在创建 `QTableWidget` 时,没有将其添加到新窗口中。可能会导致你在运行时看不到表格的显示。你需要将 `self.table` 添加到 `new_window` 中,例如:
```python
# 获取查询结果并显示在表格中
rows = self.cursor.fetchall()
self.table = QTableWidget()
if rows:
self.table.setRowCount(len(rows))
self.table.setColumnCount(len(rows[0]))
for i, row in enumerate(rows):
for j, col in enumerate(row):
item = QTableWidgetItem(str(col))
self.table.setItem(i, j, item)
self.table.setHorizontalHeaderLabels(["部门", "姓名", "性别", '职位', '工号', '状态'])
self.table.horizontalHeader().setVisible(True)
# 添加表格到新窗口中
self.v_layout.addWidget(self.table)
new_window.setLayout(self.v_layout)
new_window.show()
```
这样就可以在新窗口中显示查询结果的表格了。
阅读全文