微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取数据帧头并将其显示在QTableWidget中?使用python

如何解决如何获取数据帧头并将其显示在QTableWidget中?使用python

我有一个python脚本,可以获取数据框并在QTableWidget中显示内容

问题是我无法显示行的标题

我什至需要使用 setHorizo​​ntalHeaderLabels 函数

预定义标题
 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 举报,一经查实,本站将立刻删除。