【发布时间】:2019-02-10 00:09:42
【问题描述】:
我目前有 python 函数(如下)从 pandas 数据框 (df) 构建 QTableWidget。我希望这个 QTableWidget 默认为显示所有单元格的大小。不幸的是,QSizePolicy.Maximum 使用的默认大小提示截断了表中的一些行和列。 QTableWidget 似乎没有 setSizeHint() 方法。如何将大小提示设置为显示所有行和列的大小?
我已尝试查找有关此的以前的帖子,但我找到的答案都不是在 Python 中并使用 QTableWidget。
import PyQt5.QWidgets as QWidgets
import PyQt5.QtCore as QtCore
import PyQt5.QtGui as QtGui
import pandas as pd
def build_table(self,df):
table = QWidgets.QTableWidget()
table.setColumnCount(len(df.columns))
table.setRowCount(len(df.index))
table.setHorizontalHeaderLabels(df.columns)
for row_num, row in enumerate(df.index):
for col_num, col in enumerate(df.columns):
item = QWidgets.QTableWidgetItem(str(df.loc[row,col]))
item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
table.resizeColumnsToContents()
table.resizeRowsToContents()
table.verticalHeader().setVisible(False)
table.setSizePolicy(QWidgets.QSizePolicy.Maximum,QWidgets.QSizePolicy.Maximum)
【问题讨论】:
标签: python python-3.x pyqt pyqt5