Skip to content

Commit 70f2998

Browse files
committed
Refactor ArgumentsBrowser class
重构参数浏览器类至独立模块中;
1 parent 7a1b1a2 commit 70f2998

3 files changed

Lines changed: 33 additions & 4 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from typing import Optional
2+
3+
from PySide6.QtWidgets import QTextBrowser, QWidget
4+
5+
6+
class ArgumentsBrowser(QTextBrowser):
7+
"""针对命令行参数列表特别优化的文本浏览器"""
8+
9+
def __init__(self, parent: Optional[QWidget] = None) -> None:
10+
super(ArgumentsBrowser, self).__init__(parent)
11+
12+
def enrich_args_text(self, args_list: list[str]) -> None:
13+
"""
14+
对参数进行一定高亮美化后显示 \n
15+
:param args_list: 参数列表
16+
:return: None
17+
"""
18+
19+
text: list[str] = []
20+
for arg in args_list:
21+
if arg.startswith("--") or arg.startswith("-"):
22+
text.append(f"<font color='blue'>{arg}</font>")
23+
else:
24+
text.append(arg)
25+
self.setText(str(text))

src/py2exe-gui/Widgets/center_widget.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
QMainWindow,
99
QPushButton,
1010
QRadioButton,
11-
QTextBrowser,
1211
QVBoxLayout,
1312
QWidget,
1413
)
1514

15+
from .arguments_browser import ArgumentsBrowser
1616
from .dialog_widgets import IconFileDlg, ScriptFileDlg
1717

1818

@@ -51,7 +51,7 @@ def __init__(self, parent: QMainWindow = None) -> None:
5151
self.console_checkbox = QCheckBox()
5252

5353
# 预览生成的PyInstaller打包指令
54-
self.pyinstaller_args_browser = QTextBrowser()
54+
self.pyinstaller_args_browser = ArgumentsBrowser()
5555

5656
# 打包按钮
5757
self.run_packaging_btn = QPushButton()
@@ -93,7 +93,7 @@ def setup_ui(self) -> None:
9393
self.pyinstaller_args_browser.setMaximumHeight(80)
9494

9595
self.run_packaging_btn.setText("打包!")
96-
# TODO 在完成输入检查后再将打包按钮转为可用
96+
# TODO 完成输入检查前、子进程运行时打包按钮设置为不可用
9797
# self.run_packaging_btn.setEnabled(False)
9898

9999
def _connect_slots(self) -> None:

src/py2exe-gui/main.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,18 @@ def __init__(self, *args, **kwargs) -> None:
1414
self.packager = Packaging()
1515

1616
self.packager.args_settled.connect(
17-
lambda val: self.center_widget.pyinstaller_args_browser.setText(str(val))
17+
lambda val: self.center_widget.pyinstaller_args_browser.enrich_args_text(
18+
val
19+
)
1820
)
1921

2022
self.center_widget.option_selected.connect(self.packager.get_pyinstaller_args)
2123
self.center_widget.run_packaging_btn.clicked.connect(
2224
self.packager.run_packaging_process
2325
)
2426

27+
self.status_bar.showMessage("就绪")
28+
2529

2630
if __name__ == "__main__":
2731
app = QApplication(sys.argv)

0 commit comments

Comments
 (0)