From e39749447c7437fef1cda4186b13b919669265b3 Mon Sep 17 00:00:00 2001 From: chengma Date: Tue, 11 Aug 2026 11:38:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Client=20=E5=90=AF=E5=8A=A8=E6=97=B6?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E6=9C=80=E5=A4=A7=E5=8C=96=20(#147)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/ui_main.py | 2 +- client/test/test_pdd_ui_event.py | 32 +++++++++++++++++++++++++++++- docs/client/05-ui-specification.md | 4 +++- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/client/src/ui_main.py b/client/src/ui_main.py index 81eb4d3..89cac5f 100644 --- a/client/src/ui_main.py +++ b/client/src/ui_main.py @@ -148,7 +148,7 @@ def ui_main(): setTheme(Theme.AUTO) window = MainWindow() - window.show() + window.showMaximized() try: mark_current_version_healthy() except OSError: diff --git a/client/test/test_pdd_ui_event.py b/client/test/test_pdd_ui_event.py index e6ce4ec..c1eb0eb 100644 --- a/client/test/test_pdd_ui_event.py +++ b/client/test/test_pdd_ui_event.py @@ -42,7 +42,7 @@ from src.task_models import ( TaskType, ) from src.task_repository import TaskRepository -from src.ui_main import MainWindow +from src.ui_main import MainWindow, ui_main class BrokenRepository: @@ -1144,6 +1144,36 @@ class PDDTaskPageEventTest(unittest.TestCase): window.close() window.deleteLater() + def test_application_startup_shows_main_window_maximized(self): + class FakeApplication: + @staticmethod + def setAttribute(*_args): + pass + + def __init__(self, _args): + pass + + def exec_(self): + return 0 + + class FakeWindow: + def __init__(self): + self.maximized = False + + def showMaximized(self): + self.maximized = True + + window = FakeWindow() + with patch("src.ui_main.QApplication", FakeApplication), patch( + "src.ui_main.MainWindow", return_value=window + ), patch("src.ui_main.setTheme"), patch( + "src.ui_main.mark_current_version_healthy" + ): + result = ui_main() + + self.assertEqual(result, 0) + self.assertTrue(window.maximized) + def test_main_window_marks_and_clears_update_navigation(self): window = MainWindow( task_repository=self.repository, diff --git a/docs/client/05-ui-specification.md b/docs/client/05-ui-specification.md index 8273e47..edbf64c 100644 --- a/docs/client/05-ui-specification.md +++ b/docs/client/05-ui-specification.md @@ -32,7 +32,9 @@ > **现状提醒:** 当前代码里是 3 个导航项(pdd / 设备 / 设置),和这里写的 2 个不一样。这是已知差异,见 [02 架构 §3.1](02-architecture.md)。设备相关设置最终要并入设置页,但要按工单单独做,不要顺手改。 -窗口建议默认尺寸为 1280×800,有效最小尺寸不低于 960×600。窗口变窄时允许表格水平滚动和顶部命令换行,不能隐藏主要任务入口。 +Client 首次显示主窗口时使用标准 Windows 最大化状态,不使用全屏模式。用户仍可通过标题栏 +最小化、还原、调整大小、再次最大化或关闭窗口。窗口变窄时允许表格水平滚动和顶部命令 +换行,不能隐藏主要任务入口。 ## 3. PDD 任务页布局