| 
 | 
 
 
发表于 2024-5-9 10:02:23
|
显示全部楼层
 
 
 
 
 
非常抱歉,代码依然存在问题。上述错误与 pandas 库的使用有关。这里的问题在于,`filtered_data = df` 这一行并没有筛选数据,导致出现了错误。您需要使用适当的筛选条件来过滤数据。 
 
以下是一个修复后的示例: 
 
- import sys
 
 - from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem, QLabel, QComboBox
 
 - import pandas as pd
 
  
- # 创建主窗口类
 
 - class AssetManagementSystem(QMainWindow):
 
 -     def __init__(self, data):
 
 -         super().__init__()
 
 -         self.setWindowTitle("资产管理系统")
 
 -         self.data = data
 
 -         self.init_ui()
 
  
-     def init_ui(self):
 
 -         # 创建布局
 
 -         layout = QVBoxLayout()
 
  
-         # 创建组合框
 
 -         combobox = QComboBox()
 
 -         combobox.addItem("全部")
 
 -         combobox.addItem("类型1")
 
 -         combobox.addItem("类型2")
 
 -         combobox.addItem("类型3")
 
 -         combobox.currentIndexChanged.connect(self.handle_combobox_changed)
 
 -         layout.addWidget(combobox)
 
  
-         # 创建表格
 
 -         table_widget = QTableWidget()
 
 -         table_widget.setColumnCount(4)
 
 -         table_widget.setHorizontalHeaderLabels(["名称", "类型", "购买日期", "价值"])
 
 -         table_widget.setRowCount(len(self.data))
 
 -         for i, row in enumerate(self.data.iterrows()):
 
 -             for j, value in enumerate(row[1]):
 
 -                 item = QTableWidgetItem(str(value))
 
 -                 table_widget.setItem(i, j, item)
 
 -         layout.addWidget(table_widget)
 
  
-         # 创建标签
 
 -         label = QLabel("总价值:$10000")
 
 -         layout.addWidget(label)
 
  
-         # 创建主窗口部件
 
 -         central_widget = QWidget()
 
 -         central_widget.setLayout(layout)
 
 -         self.setCentralWidget(central_widget)
 
  
-     def handle_combobox_changed(self, index):
 
 -         # 获取选择的类型
 
 -         selected_type = self.sender().currentText()
 
  
-         # 根据选择的类型筛选数据
 
 -         if selected_type == "全部":
 
 -             filtered_data = self.data
 
 -         else:
 
 -             filtered_data = self.data[self.data["类型"] == selected_type]
 
  
-         # 更新表格内容和标签显示
 
 -         table_widget = self.centralWidget().findChild(QTableWidget)
 
 -         table_widget.setRowCount(len(filtered_data))
 
 -         for i, row in enumerate(filtered_data.iterrows()):
 
 -             for j, value in enumerate(row[1]):
 
 -                 item = QTableWidgetItem(str(value))
 
 -                 table_widget.setItem(i, j, item)
 
  
-         total_value = filtered_data["价值"].sum()
 
 -         label = self.centralWidget().findChild(QLabel)
 
 -         label.setText(f"总价值:${total_value}")
 
  
- if __name__ == "__main__":
 
 -     # 读取数据
 
 -     data = pd.read_csv("assets.csv")
 
  
-     # 创建应用程序对象
 
 -     app = QApplication(sys.argv)
 
  
-     # 创建主窗口对象
 
 -     main_window = AssetManagementSystem(data)
 
  
-     # 显示主窗口
 
 -     main_window.show()
 
  
-     # 运行应用程序
 
 -     sys.exit(app.exec())
 
  复制代码 
 
请确保您已经安装了 pandas 和 PySide6 模块,并将数据文件 `assets.csv` 放在相同的文件夹中。注意,这只是一个简单的示例,您可能需要根据实际需求进行修改和扩展。 
 
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |   
 
 
 
 |