问题描述
我有一个python脚本,可以获取数据框并在QTableWidget中显示其内容。
我什至需要使用 setHorizontalHeaderLabels 函数
预定义标题 self.setHorizontalHeaderLabels(('Col X','Col Y'))
代码:
import sys
import pandas as pd
from PyQt5.QtWidgets import QApplication,QWidget,QTableWidget,QTableWidgetItem,QHeaderView,QLineEdit,\
QPushButton,QItemDelegate,QVBoxLayout
from PyQt5.QtCore import Qt
class TableWidget(QTableWidget):
def __init__(self,df):
super().__init__()
self.df=df
self.setStyleSheet('font-size :35px')
#set table dimension
nRows,nColumns = self.df.shape
self.setColumnCount(nColumns)
self.setRowCount(nRows)
self.setHorizontalHeaderLabels(('Col X','Col Y'))
self.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
#data insertion
for i in range(self.rowCount()):
for j in range(self.columnCount()):
self.setItem(i,j,QTableWidgetItem(str(self.df.iloc[i,j])))
class DFEditor(QWidget):
data = {
'col X':list('ABCD'),'col Y': [10,20,30,40]
}
df= pd.DataFrame(data)
def __init__(self):
super().__init__()
self.resize(1200,800)
mainLayout = QVBoxLayout()
self.table = TableWidget(DFEditor.df)
mainLayout.addWidget(self.table)
self.setLayout(mainLayout)
if __name__=='__main__':
app=QApplication(sys.argv)
demo = DFEditor()
demo.show()
sys.exit(app.exec_())
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)