「已注销」 2024-05-28 22:37 采纳率: 0%
浏览 30
已结题

pyqt5 如何在tablewidget中导入csv文件

为什么运行后点导入csv文件的内容没有显示在tablewidget中?
没有显示在我放到frame中tablewidget中,还不报错,就是没反应,请各位帮帮忙😭

img

img

img

img

img

img

img

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-05-28 22:37
    关注

    引自免费微信小程序:皆我百晓生

    要解决你在PyQt5中将CSV文件数据导入到QTableWidget的问题,你需要按照以下步骤操作:

    首先,确保你的tables.py文件中有一个名为read_csv_to_table的函数,这个函数负责从CSV文件中读取数据并填充到QTableWidget中。以下是这个函数的实现:

    import pandas as pd
    
    def read_csv_to_table(table_widget, csv_path):
        # 读取CSV文件
        data = pd.read_csv(csv_path)
        
        # 获取表头
        column_names = data.columns.tolist()
        
        # 清空当前表格
        table_widget.clearContents()
        table_widget.setRowCount(len(data))
        table_widget.setColumnCount(len(column_names))
    
        # 设置列名
        for i, col_name in enumerate(column_names):
            item = QTableWidgetItem(col_name)
            table_widget.setHorizontalHeaderItem(i, item)
    
        # 填充数据
        for i, row_data in enumerate(data.values):
            for j, cell_data in enumerate(row_data):
                item = QTableWidgetItem(str(cell_data))
                table_widget.setItem(i, j, item)
    

    然后,在你的main.py中的go_student方法里调用这个函数,当用户点击“导入”按钮时执行此操作。这里假设你已经在go_student方法中获取了CSV文件路径。

    def go_student(self):
        self.ui.stackedwidget.setcurrentIndex(1)
        
        # 这里应该有获取CSV文件路径的代码,例如:
        csv_path = QFileDialog.getOpenFileName(self, "读取csv文件", "", "*.csv")[0]
        
        if csv_path:
            # 调用函数,将数据加载到table_widget中
            read_csv_to_table(self.ui.tablewidget, csv_path)
    

    这样,当你选择一个CSV文件并点击“导入”按钮后,其内容会显示在tablewidget中。

    注意:在实际应用中,为了程序健壮性,你应该添加错误处理代码,比如检查是否成功打开文件、读取数据等。同时,确保已经正确设置了UI元素(如按钮和QTableWidget)的连接。以上代码片段是基于你提供的部分代码进行的推测,可能需要根据你项目的具体结构进行调整。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月29日
  • 修改了问题 5月28日
  • 修改了问题 5月28日
  • 创建了问题 5月28日