From 6abf53030718e280d7f37671971d8964e19ab8a4 Mon Sep 17 00:00:00 2001 From: KenanZhu <3471685733@qq.com> Date: Mon, 22 Dec 2025 11:53:45 +0800 Subject: [PATCH] =?UTF-8?q?optimize(ALTimerTaskWidget,=20ALConfigWidget):?= =?UTF-8?q?=20=E4=BC=98=E5=8C=96=E5=AE=9A=E6=97=B6=E5=99=A8=E5=92=8C?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=AE=BE=E7=BD=AE=E7=9A=84=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gui/ALTimerTaskWidget.py | 28 +++++++++++++++++++++++----- src/gui/ALTimerTaskWidget.ui | 21 ++++++++++++++++++++- src/gui/ALUserTreeWidget.py | 1 + 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/src/gui/ALTimerTaskWidget.py b/src/gui/ALTimerTaskWidget.py index c656e49..d719fa6 100644 --- a/src/gui/ALTimerTaskWidget.py +++ b/src/gui/ALTimerTaskWidget.py @@ -154,6 +154,7 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget): self.__timer_tasks = [] self.__check_timer = None self.__sort_policy = SortPolicy.BY_EXECUTE_TIME + self.__sort_order = Qt.SortOrder.AscendingOrder self.__timer_tasks_config_path = timer_tasks_config_path self.setupUi(self) @@ -170,6 +171,7 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget): self.AddTimerTaskButton.clicked.connect(self.addTask) self.ClearAllTimerTasksButton.clicked.connect(self.clearAllTasks) self.TimerTaskSortTypeComboBox.currentIndexChanged.connect(self.onSortPolicyComboBoxChanged) + self.TimerTaskSortOrderToggleButton.clicked.connect(self.onSortOrderToggleButtonClicked) self.timerTasksChanged.connect(self.onTimerTasksChanged) @@ -294,20 +296,24 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget): def sortTimerTasks( self, - policy: SortPolicy = SortPolicy.BY_EXECUTE_TIME + policy: SortPolicy = SortPolicy.BY_EXECUTE_TIME, + order: Qt.SortOrder = Qt.SortOrder.AscendingOrder ): if policy == SortPolicy.BY_NAME: self.__timer_tasks.sort( - key = lambda x: x["name"] + key = lambda x: x["name"], + reverse = order is Qt.SortOrder.DescendingOrder ) elif policy == SortPolicy.BY_ADD_TIME: self.__timer_tasks.sort( - key = lambda x: x["add_time"] + key = lambda x: x["add_time"], + reverse = order is Qt.SortOrder.DescendingOrder ) elif policy == SortPolicy.BY_EXECUTE_TIME: self.__timer_tasks.sort( - key = lambda x: x["execute_time"] + key = lambda x: x["execute_time"], + reverse = order is Qt.SortOrder.DescendingOrder ) @@ -343,7 +349,7 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget): ): self.TimerTasksListWidget.clear() - self.sortTimerTasks(self.__sort_policy) + self.sortTimerTasks(self.__sort_policy, self.__sort_order) for timer_task in self.__timer_tasks: item = QListWidgetItem() item.setData(Qt.UserRole, timer_task) @@ -445,6 +451,18 @@ class ALTimerTaskWidget(QWidget, Ui_ALTimerTaskWidget): self.__sort_policy = mapping[policy] self.updateTimerTaskList() + @Slot() + def onSortOrderToggleButtonClicked( + self + ): + + self.__sort_order = Qt.SortOrder.AscendingOrder\ + if self.__sort_order is Qt.SortOrder.DescendingOrder\ + else Qt.SortOrder.DescendingOrder + self.TimerTaskSortOrderToggleButton.setText( + "↑" if self.__sort_order is Qt.SortOrder.AscendingOrder else "↓" + ) + self.updateTimerTaskList() @Slot() def onTimerTasksChanged( diff --git a/src/gui/ALTimerTaskWidget.ui b/src/gui/ALTimerTaskWidget.ui index 363ead3..5f39cdb 100644 --- a/src/gui/ALTimerTaskWidget.ui +++ b/src/gui/ALTimerTaskWidget.ui @@ -188,7 +188,7 @@ - 5 + 0 @@ -259,6 +259,25 @@ + + + + + 25 + 25 + + + + + 25 + 25 + + + + + + + diff --git a/src/gui/ALUserTreeWidget.py b/src/gui/ALUserTreeWidget.py index b07ed64..00048a1 100644 --- a/src/gui/ALUserTreeWidget.py +++ b/src/gui/ALUserTreeWidget.py @@ -60,6 +60,7 @@ class ALUserTreeWidget(QTreeWidget): self.setDefaultDropAction(Qt.DropAction.IgnoreAction) self.setAlternatingRowColors(True) self.setSortingEnabled(True) + self.sortByColumn(0, Qt.SortOrder.AscendingOrder) self.setAnimated(True) self.setAllColumnsShowFocus(False) self.setHeaderHidden(False)