在这段代码中,可以通过遍历数据模型 `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 小助理,如未能正确解答您的问题,请继续追问。 |