修复所有 Panel 的相对路径传递问题,防止 FileNotFoundError
This commit is contained in:
@ -170,9 +170,15 @@ class Step5Panel(QWidget):
|
||||
mask_path = main_window.step1_panel.output_file.get_path()
|
||||
else:
|
||||
mask_path = main_window.step1_panel.mask_file.get_path()
|
||||
# 若为相对路径,使用 work_dir 合成为绝对路径
|
||||
if mask_path and not os.path.isabs(mask_path):
|
||||
mask_path = os.path.join(self.work_dir or '', mask_path).replace('\\', '/')
|
||||
|
||||
# 填充水体掩膜路径
|
||||
if mask_path:
|
||||
# 若为相对路径,使用 work_dir 合成为绝对路径
|
||||
if not os.path.isabs(mask_path):
|
||||
mask_path = os.path.join(self.work_dir or '', mask_path).replace('\\', '/')
|
||||
self.water_mask_file.set_path(mask_path)
|
||||
|
||||
# 3. 尝试从 Step2 界面读取耀斑掩膜路径
|
||||
@ -180,6 +186,9 @@ class Step5Panel(QWidget):
|
||||
if hasattr(main_window, 'step2_panel'):
|
||||
glint_path = main_window.step2_panel.output_file.get_path()
|
||||
if glint_path:
|
||||
# 若为相对路径,使用 work_dir 合成为绝对路径
|
||||
if not os.path.isabs(glint_path):
|
||||
glint_path = os.path.join(self.work_dir or '', glint_path).replace('\\', '/')
|
||||
self.glint_mask_file.set_path(glint_path)
|
||||
|
||||
# 4. 自动填充输出路径(基于工作目录)
|
||||
@ -196,6 +205,9 @@ class Step5Panel(QWidget):
|
||||
if main_window and hasattr(main_window, 'step4_panel'):
|
||||
step4_output_path = main_window.step4_panel.output_file.get_path()
|
||||
if step4_output_path:
|
||||
# 若为相对路径,使用 work_dir 合成为绝对路径
|
||||
if not os.path.isabs(step4_output_path):
|
||||
step4_output_path = os.path.join(self.work_dir or '', step4_output_path).replace('\\', '/')
|
||||
existing_csv = self.csv_file.get_path()
|
||||
if not existing_csv or not existing_csv.strip():
|
||||
self.csv_file.set_path(step4_output_path)
|
||||
|
||||
Reference in New Issue
Block a user