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) # 添加表格到新窗口中 self.v_layout.addWidget(self.table) new_window.setLayout(self.v_layout) new_window.show()产生两个表格,其中一个全白
时间: 2024-02-15 16:28:11 浏览: 53
根据你提供的代码,我可以看出这是一个查询员工信息的功能,它会将查询结果显示在一个新的窗口中的表格中。如果你说其中一个表格全白,可能是因为数据没有被返回或者没有被正确地添加到表格中。你可以检查一下数据查询和添加到表格的过程是否正确,以及表格的样式是否正确。如果还有问题,可以提供更多的代码或者详细的描述,我会尽力帮助你解决问题。
相关问题
def query(self, sql): # 执行 SQL 查询语句 self.cursor.execute(sql) # 获取查询结果并显示在表格中 rows = self.cursor.fetchall() 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)如何设置表格每列的名字
你可以使用 `setHorizontalHeaderLabels` 方法来设置表格每列的名字。例如,如果你想将表格的第一列命名为 "姓名",第二列命名为 "年龄",第三列命名为 "性别",你可以这样写:
```
self.table.setHorizontalHeaderLabels(["姓名", "年龄", "性别"])
```
将上述代码放到 `query` 方法中,在设置表格数据之前调用即可。
def query(self, sql): # 执行 SQL 查询语句 self.cursor.execute(sql) # 获取查询结果并显示在表格中 self.table.setHorizontalHeaderLabels(["部门", "姓名", "性别",'职位','工号','状态']) rows = self.cursor.fetchall() 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)列名称任然为 1 2 3 4 5 6
这段代码是用来执行SQL查询语句并将查询结果显示在表格中的。在执行SQL查询语句后,首先设置表格的列名为["部门", "姓名", "性别",'职位','工号','状态'],然后获取所有查询结果,如果查询结果非空,则设置表格的行数为查询结果的长度,列数为查询结果第一行的长度,然后遍历查询结果,将每个结果作为一个单元格设置到表格中。
然而,你提到“列名称任然为 1 2 3 4 5 6”,这可能是因为你没有设置表格的列名。你可以尝试在代码中添加以下语句来设置表格的列名:
```
self.table.setHorizontalHeaderLabels(["部门", "姓名", "性别",'职位','工号','状态'])
```
其中,["部门", "姓名", "性别",'职位','工号','状态']是你想要设置的列名。
阅读全文