pyqt5点击按钮传入pandas类型数据,并弹出新窗口显示表格数据
时间: 2023-06-19 09:04:30 浏览: 350
可以使用以下步骤实现:
1. 在PyQt5中创建一个主窗口。
2. 在主窗口中添加一个按钮,用于触发显示数据的操作。
3. 在点击按钮时,读取Pandas数据,并将其显示在一个新的窗口中。
4. 在新窗口中,使用PyQt5中的QTableWidget来显示数据。
以下是一个简单的示例代码:
```python
import sys
import pandas as pd
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget, QTableWidget, QTableWidgetItem, QVBoxLayout
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建主窗口
self.setWindowTitle("PyQt Example")
self.setGeometry(100, 100, 600, 400)
# 添加按钮
self.button = QPushButton("Show Data", self)
self.button.setGeometry(50, 50, 100, 30)
self.button.clicked.connect(self.show_data)
def show_data(self):
# 读取数据
data = pd.read_csv("data.csv")
# 创建新窗口
self.new_window = QWidget()
self.new_window.setWindowTitle("Data Table")
self.new_window.setGeometry(200, 200, 800, 600)
# 创建表格
table = QTableWidget()
table.setRowCount(len(data.index))
table.setColumnCount(len(data.columns))
table.setHorizontalHeaderLabels(data.columns)
# 填充表格
for i in range(len(data.index)):
for j in range(len(data.columns)):
item = QTableWidgetItem(str(data.iloc[i, j]))
table.setItem(i, j, item)
# 显示表格
layout = QVBoxLayout()
layout.addWidget(table)
self.new_window.setLayout(layout)
self.new_window.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
```
在这个示例中,我们在主窗口中添加了一个按钮来触发显示数据的操作。当用户点击按钮时,程序会读取名为"data.csv"的文件中的数据,并将其显示在一个新窗口中的表格中。我们使用了QTableWidget来创建表格,并使用QTableWidgetItem来填充表格。最后,我们使用QVBoxLayout来将表格添加到新窗口中,并使用QWidget的show()方法来显示新窗口。
阅读全文