77from PySide6 .QtGui import QCloseEvent
88from PySide6 .QtWidgets import QApplication
99
10- from .Constants import PyInstOpt # noqa
11- from .Core import Packaging , PackagingTask # noqa
10+ from .Constants import PyInstOpt
11+ from .Core import Packaging , PackagingTask
1212from .Resources import COMPILED_RESOURCES # noqa
13- from .Utilities import open_dir_in_explorer # noqa
14- from .Widgets import MainWindow , SubProcessDlg # noqa
13+ from .Utilities import PyEnv , open_dir_in_explorer
14+ from .Widgets import MainWindow , SubProcessDlg
1515
1616
1717class MainApp (MainWindow ):
@@ -22,6 +22,7 @@ class MainApp(MainWindow):
2222 def __init__ (self , * args , ** kwargs ) -> None :
2323 super ().__init__ (* args , ** kwargs )
2424
25+ self .current_pyenv : PyEnv
2526 self .packaging_task = PackagingTask (self )
2627 self .packager = Packaging (self )
2728 self .subprocess_dlg = SubProcessDlg (self )
@@ -63,16 +64,24 @@ def _connect_pyenv_change(self):
6364 处理用户通过选择不同的 Python 解释器时的响应
6465 """
6566
66- self .packager .set_python_path (self .center_widget .pyenv_combobox .currentData ())
67- self .center_widget .pyenv_combobox .currentIndexChanged .connect (
68- lambda : self .packager .set_python_path (
69- self .center_widget .pyenv_combobox .currentData ()
67+ @Slot ()
68+ def on_pyenv_change () -> None :
69+ """
70+ 处理用户通过选择不同的 Python 解释器时的响应
71+ """
72+
73+ self .current_pyenv = self .center_widget .pyenv_combobox .currentData ()
74+ self .packager .set_python_path (self .current_pyenv .exe_path )
75+ self .center_widget .hidden_import_dlg .pkg_browser_dlg .load_pkg_list (
76+ self .current_pyenv .installed_packages
7077 )
71- )
78+
79+ on_pyenv_change () # 显式调用一次,确保用户无任何操作时也能正确处理默认pyenv
80+ self .center_widget .pyenv_combobox .currentIndexChanged .connect (on_pyenv_change )
7281
7382 def _connect_run_pkg_btn_slot (self ):
7483 @Slot ()
75- def run_packaging () -> None :
84+ def on_run_packaging_btn_clicked () -> None :
7685 """
7786 “运行打包”按钮的槽函数 \n
7887 """
@@ -81,11 +90,13 @@ def run_packaging() -> None:
8190 self .subprocess_dlg .show ()
8291 self .packager .run_packaging_process ()
8392
84- self .center_widget .run_packaging_btn .clicked .connect (run_packaging )
93+ self .center_widget .run_packaging_btn .clicked .connect (
94+ on_run_packaging_btn_clicked
95+ )
8596
8697 def _connect_mul_btn_slot (self , subprocess_dlg ):
8798 @Slot ()
88- def handle_multifunction () -> None :
99+ def on_multifunction_btn_clicked () -> None :
89100 """
90101 处理子进程窗口多功能按钮点击信号的槽 \n
91102 """
@@ -102,7 +113,7 @@ def handle_multifunction() -> None:
102113 self .subprocess_dlg .close ()
103114
104115 # 连接信号与槽
105- subprocess_dlg .multifunction_btn .clicked .connect (handle_multifunction )
116+ subprocess_dlg .multifunction_btn .clicked .connect (on_multifunction_btn_clicked )
106117
107118 def closeEvent (self , event : QCloseEvent ) -> None :
108119 """
0 commit comments