pyqt6 输出dataframe
时间: 2023-10-30 20:03:27 浏览: 159
要在 PyQt6 中输出 DataFrame,可以使用 QTableView 和 QStandardItemModel。
首先,需要将 DataFrame 转换为 QStandardItemModel,可以使用以下代码:
```python
from PyQt6.QtCore import Qt, QAbstractTableModel, QVariant
from PyQt6.QtGui import QStandardItemModel, QStandardItem
class PandasModel(QAbstractTableModel):
def __init__(self, data):
QAbstractTableModel.__init__(self)
self._data = data
def rowCount(self, parent=None):
return self._data.shape[0]
def columnCount(self, parent=None):
return self._data.shape[1]
def data(self, index, role=Qt.DisplayRole):
if index.isValid():
if role == Qt.DisplayRole:
return str(self._data.iloc[index.row(), index.column()])
return QVariant()
def headerData(self, section, orientation, role):
if role != Qt.DisplayRole:
return QVariant()
if orientation == Qt.Horizontal:
return str(self._data.columns[section])
else:
return str(section + 1)
```
然后,可以创建一个 QTableView,并将 QStandardItemModel 与其绑定:
```python
from PyQt6.QtWidgets import QTableView
# 将 DataFrame 转换为 QStandardItemModel
model = PandasModel(dataframe)
# 创建 QTableView
table = QTableView()
# 将 QStandardItemModel 与 QTableView 绑定
table.setModel(model)
```
最后,将 QTableView 添加到需要显示的窗口中即可。
```python
from PyQt6.QtWidgets import QApplication, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("DataFrame Viewer")
self.setGeometry(100, 100, 800, 600)
# 将 QTableView 添加到窗口中
self.setCentralWidget(table)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
```
这样,就可以在 PyQt6 窗口中显示 DataFrame 了。
阅读全文