|
发表于 2024-4-17 23:02:07
|
显示全部楼层
在这段代码中,可以通过遍历数据模型 `self.data_model` 来找到与给定的 `code` 对应的 `name`。修改 `load_data` 方法和 `init_comboboxes` 方法如下所示:
- def load_data(self, excel_file):
- wb = load_workbook(excel_file)
- ws = wb.active
- self.data_model = []
- for row in ws.iter_rows(values_only=True):
- level = row[0]
- code = row[1]
- name = row[2]
- if level == 1:
- self.data_model.append((code, name))
- elif level == 2:
- province_code = self.combo_province.itemData(self.combo_province.currentIndex())
- if code.startswith(province_code):
- self.data_model.append((code, name))
- elif level == 3:
- province_code = self.combo_province.itemData(self.combo_province.currentIndex())
- city_code = self.combo_city.itemData(self.combo_city.currentIndex())
- if code.startswith(province_code) and code.startswith(city_code):
- self.data_model.append((code, name))
- def init_comboboxes(self):
- self.combo_province.clear()
- self.combo_city.clear()
- self.combo_county.clear()
- self.combo_province.addItem("请选择省级")
- self.combo_city.addItem("请选择市级")
- self.combo_county.addItem("请选择县级")
- for code, name in self.data_model:
- if code.endswith("0000"):
- self.combo_province.addItem(name, code)
- elif code.endswith("00"):
- self.combo_city.addItem(name, code)
- else:
- self.combo_county.addItem(name, code)
复制代码
这样修改后,`data_model` 中的每个元素都是一个元组 `(code, name)`。然后,在循环中使用 `for code, name in self.data_model` 就可以依次获取 `code` 和 `name` 的值了。
希望这次的修改能够满足你的需求!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|