潜在bug!
n5321 | 2025年10月21日 00:13
properties setup暂时用的这个function!
感觉是一个坑
def _get_property_changes_from_table(self) -> List[dict]:
"""
从参数表格中获取用户输入的属性修改。
返回一个字典列表,每个字典包含一个属性的修改信息。
"""
prop_changes = []
prop_map = {
"Reference Speed": {'target': 'Editor', 'tab': 'Machine', 'prop_server': 'Machine', 'type': 'Value'},
"Steel Type (Stator)": {'target': 'Editor', 'tab': 'Stator', 'prop_server': 'Stator', 'type': 'Material'},
"Steel Type (Rotor)": {'target': 'Editor', 'tab': 'Rotor', 'prop_server': 'Rotor', 'type': 'Material'},
"Embrace": {'target': 'Editor', 'tab': 'Pole', 'prop_server': 'Rotor:Pole', 'type': 'Value'},
"Magnet Thickness": {'target': 'Editor', 'tab': 'Pole', 'prop_server': 'Rotor:Pole', 'type': 'Value'},
"Rated Output Power": {'target': 'Design', 'tab': 'General', 'prop_server': 'AnalysisSetup:all', 'type': 'Value'},
"Rated Speed": {'target': 'Design', 'tab': 'General', 'prop_server': 'AnalysisSetup:Setup1', 'type': 'Value'},
}
for row in range(self.param_table.rowCount()):
name_item = self.param_table.item(row, 0)
value_item = self.param_table.item(row, 1)
if name_item and value_item:
name = name_item.text().strip()
value = value_item.text().strip()
if name in prop_map:
info = prop_map[name].copy()
info['name'] = name
info['value'] = value
prop_changes.append(info)
elif name: # 如果参数名不为空但不在映射中
self.log_output.append(f"<span style='color:orange;'>警告: 未知参数 '{name}',将跳过。</span>")
logging.warning(f"未知参数 '{name}',将跳过。")
logging.debug(f"Collected property changes: {prop_changes}")
return prop_changes