pyqt5在主窗口中显示表格并传入数据
时间: 2024-03-16 08:44:04 浏览: 25
要在PyQt5中在主窗口中显示表格并传入数据,可以使用QTableView和QStandardItemModel。
首先,需要在主窗口中创建一个QTableView对象,并将其添加到主窗口的布局中。然后,创建一个QStandardItemModel对象,并将其传递给QTableView。最后,将数据添加到QStandardItemModel中。
下面是一个示例代码:
```python
from PyQt5.QtWidgets import QMainWindow, QTableView, QVBoxLayout, QWidget, QApplication
from PyQt5.QtGui import QStandardItemModel, QStandardItem
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建表格视图
self.table_view = QTableView()
# 创建模型并将其设置为表格视图的模型
self.model = QStandardItemModel(self.table_view)
self.table_view.setModel(self.model)
# 添加表格视图到主窗口布局中
central_widget = QWidget()
layout = QVBoxLayout()
layout.addWidget(self.table_view)
central_widget.setLayout(layout)
self.setCentralWidget(central_widget)
# 添加数据到模型中
self.add_data_to_model()
def add_data_to_model(self):
# 添加数据到模型中
self.model.setHorizontalHeaderLabels(['姓名', '年龄', '性别'])
data = [['张三', '20', '男'], ['李四', '25', '女'], ['王五', '30', '男']]
for row in range(len(data)):
for column in range(len(data[row])):
item = QStandardItem(data[row][column])
self.model.setItem(row, column, item)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在这个示例代码中,我们创建了一个MainWindow类,它继承自QMainWindow类。在MainWindow的构造函数中,我们首先创建了一个QTableView对象,并将其设置为MainWindow的布局。然后,我们创建了一个QStandardItemModel对象,并将其设置为QTableView的模型。最后,我们调用add_data_to_model方法向模型中添加数据。
在add_data_to_model方法中,我们首先调用setHorizontalHeaderLabels方法设置表头标签。然后,我们创建了一个二维列表来存储数据,并使用两个for循环将数据添加到模型中。
运行这个示例代码,就可以在主窗口中显示一个带有数据的表格了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)