1
1
mirror of https://github.com/KenanZhu/AutoLibrary.git synced 2026-06-18 23:43:02 +08:00

Compare commits

..

6 Commits

14 changed files with 120 additions and 81 deletions
+9 -8
View File
@@ -4,10 +4,11 @@
![AutoLibrary Logo](./src/gui/icons/AutoLibrary_128x128.ico) ![AutoLibrary Logo](./src/gui/icons/AutoLibrary_128x128.ico)
[![GitHub stars](https://img.shields.io/github/stars/KenanZhu/AutoLibrary.svg?style=social&label=Star)](https://github.com/KenanZhu/AutoLibrary)
![License](https://img.shields.io/github/license/KenanZhu/AutoLibrary) ![License](https://img.shields.io/github/license/KenanZhu/AutoLibrary)
![Issue](https://img.shields.io/github/issues/KenanZhu/AutoLibrary) [![Build](https://img.shields.io/github/actions/workflow/status/KenanZhu/AutoLibrary/release.yml)](https://github.com/KenanZhu/AutoLibrary/actions/workflows/release.yml)
![Release](https://img.shields.io/github/v/release/KenanZhu/AutoLibrary) [![Release](https://img.shields.io/github/v/release/KenanZhu/AutoLibrary)](https://github.com/KenanZhu/AutoLibrary/releases)
![Download](https://img.shields.io/github/downloads/KenanZhu/AutoLibrary/total) ![Downloads](https://img.shields.io/github/downloads/KenanZhu/AutoLibrary/total)
了解更多请访问 [_AutoLibrary 网站_](http://autolibrary.cv) 了解更多请访问 [_AutoLibrary 网站_](http://autolibrary.cv)
@@ -23,9 +24,9 @@
*1,2,3 的具体操作方法和注意事项请访问我们的 [帮助手册](https://autolibrary.cv/docs/manual_lists.html)* *1,2,3 的具体操作方法和注意事项请访问我们的 [帮助手册](https://autolibrary.cv/docs/manual_lists.html)*
### 特点 ### 注意事项
#### 关于预约等操作的注意事项 #### 关于预约等操作
工具会自动处理登录过程的验证码识别过程,正常情况下单次识别准确率在 90% 以上,如遇验证码识别错误,大概率是校园网网络环境不佳导致的。 工具会自动处理登录过程的验证码识别过程,正常情况下单次识别准确率在 90% 以上,如遇验证码识别错误,大概率是校园网网络环境不佳导致的。
@@ -34,11 +35,11 @@
> [!NOTE] > [!NOTE]
> 工具仅作为正常的预约,签到和续约的图书馆辅助工具,请勿干扰图书馆的正常运行(如故意预约多个座位,或同时预约大量的用户等,对此影响图书馆正常运行本工具概不负责,请在善用工具方便自己的情况下尽量不用影响其他同学的使用)。 > 工具仅作为正常的预约,签到和续约的图书馆辅助工具,请勿干扰图书馆的正常运行(如故意预约多个座位,或同时预约大量的用户等,对此影响图书馆正常运行本工具概不负责,请在善用工具方便自己的情况下尽量不用影响其他同学的使用)。
#### 关于批量操作的注意事项 #### 关于批量操作
批量操作时,建议将需要操作的用户分成多个组,每个组的用户数量不要超过 4 人(即一整张桌子的数量),否则会影响操作效率,大量用户同时预约会一定程度上增加图书馆服务器的压力,影响正常使用。根据需要在用户管理界面中可以勾选本次操作是否跳过该用户,以提高运行效率。 批量操作时,建议将需要操作的用户分成多个组,每个组的用户数量不要超过 4 人(即一整张桌子的数量),否则会影响操作效率,大量用户同时预约会一定程度上增加图书馆服务器的压力,影响正常使用。根据需要在用户管理界面中可以勾选本次操作是否跳过该用户,以提高运行效率。
#### 关于定时任务的注意事项 #### 关于定时任务
定时任务会在指定的时间自动运行,运行时会根据当前预约信息进行操作。一般情况下不建议设置两个运行开始时间比较接近的定时任务,否则后一个任务会等待前一个任务完成后才会运行,按照队列的顺序执行。 定时任务会在指定的时间自动运行,运行时会根据当前预约信息进行操作。一般情况下不建议设置两个运行开始时间比较接近的定时任务,否则后一个任务会等待前一个任务完成后才会运行,按照队列的顺序执行。
@@ -97,7 +98,7 @@ def classification(self, img: bytes):
#### 后续会有哪些功能? #### 后续会有哪些功能?
当前 v1.0.0 版本的功能对于正常使用已经足够,不过后续会着重考虑完善 2-4 人预约时的使用体验,暂时有以下构想: 当前版本的功能对于正常使用已经足够,不过后续会着重考虑完善 2-4 人预约时的使用体验,暂时有以下构想:
1. 2-4 人一起预约时,往往会偏向于预约并排或对面的整个空座位,这时候工具会按照一定策略查询搜索符合条件的座位,并预约并排或对面的整个座位,而不是各自独立预约。 1. 2-4 人一起预约时,往往会偏向于预约并排或对面的整个空座位,这时候工具会按照一定策略查询搜索符合条件的座位,并预约并排或对面的整个座位,而不是各自独立预约。
2. 预约时会考虑到组内用户的预约时间是否冲突,若冲突则会提示用户是否继续预约,若用户选择继续预约,则会按需要调整预约时间,再进行预约。 2. 预约时会考虑到组内用户的预约时间是否冲突,若冲突则会提示用户是否继续预约,若用户选择继续预约,则会按需要调整预约时间,再进行预约。
+1 -1
View File
@@ -60,7 +60,7 @@ class ALAboutDialog(QDialog, Ui_ALAboutDialog):
def generateAboutText( def generateAboutText(
self self
): ) -> str:
os_info = self.getOSInfo() os_info = self.getOSInfo()
about_text = f""" about_text = f"""
+1 -1
View File
@@ -104,7 +104,7 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<widget class="QFrame" name="frame"> <widget class="QFrame" name="AboutInfoSpaceFrame">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>56</width> <width>56</width>
+8 -8
View File
@@ -86,16 +86,16 @@
<number>5</number> <number>5</number>
</property> </property>
<property name="leftMargin"> <property name="leftMargin">
<number>5</number> <number>3</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>5</number> <number>3</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>5</number> <number>3</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>5</number> <number>3</number>
</property> </property>
<item> <item>
<layout class="QHBoxLayout" name="TimerTypeSelectLayout"> <layout class="QHBoxLayout" name="TimerTypeSelectLayout">
@@ -135,16 +135,16 @@
</property> </property>
<layout class="QGridLayout" name="TaskConfigLayout"> <layout class="QGridLayout" name="TaskConfigLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>5</number> <number>3</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>5</number> <number>3</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>5</number> <number>3</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>5</number> <number>3</number>
</property> </property>
<property name="spacing"> <property name="spacing">
<number>5</number> <number>5</number>
+2 -2
View File
@@ -33,7 +33,7 @@ from utils.ConfigWriter import ConfigWriter
class ALConfigWidget(QWidget, Ui_ALConfigWidget): class ALConfigWidget(QWidget, Ui_ALConfigWidget):
configWidgetCloseSingal = Signal(dict) configWidgetIsClosed = Signal(dict)
def __init__( def __init__(
self, self,
@@ -126,7 +126,7 @@ class ALConfigWidget(QWidget, Ui_ALConfigWidget):
event: QCloseEvent event: QCloseEvent
): ):
self.configWidgetCloseSingal.emit(self.__config_paths) self.configWidgetIsClosed.emit(self.__config_paths)
super().closeEvent(event) super().closeEvent(event)
+46 -13
View File
@@ -94,19 +94,19 @@
</property> </property>
<layout class="QVBoxLayout" name="UserListLayout"> <layout class="QVBoxLayout" name="UserListLayout">
<property name="spacing"> <property name="spacing">
<number>0</number> <number>5</number>
</property> </property>
<property name="leftMargin"> <property name="leftMargin">
<number>5</number> <number>3</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>5</number> <number>3</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>5</number> <number>3</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>5</number> <number>3</number>
</property> </property>
<item> <item>
<widget class="QTreeWidget" name="UserTreeWidget"> <widget class="QTreeWidget" name="UserTreeWidget">
@@ -178,6 +178,9 @@
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="UserListControlLayout"> <layout class="QHBoxLayout" name="UserListControlLayout">
<property name="spacing">
<number>5</number>
</property>
<item> <item>
<widget class="QPushButton" name="DelUserButton"> <widget class="QPushButton" name="DelUserButton">
<property name="minimumSize"> <property name="minimumSize">
@@ -309,7 +312,7 @@
<item row="2" column="1"> <item row="2" column="1">
<layout class="QHBoxLayout" name="PasswordLayout"> <layout class="QHBoxLayout" name="PasswordLayout">
<property name="spacing"> <property name="spacing">
<number>0</number> <number>5</number>
</property> </property>
<item> <item>
<widget class="QLineEdit" name="PasswordEdit"> <widget class="QLineEdit" name="PasswordEdit">
@@ -546,7 +549,7 @@
<item row="4" column="4"> <item row="4" column="4">
<layout class="QHBoxLayout" name="SeatIDLayout"> <layout class="QHBoxLayout" name="SeatIDLayout">
<property name="spacing"> <property name="spacing">
<number>0</number> <number>5</number>
</property> </property>
<item> <item>
<widget class="QLineEdit" name="SeatIDEdit"> <widget class="QLineEdit" name="SeatIDEdit">
@@ -703,7 +706,7 @@
<item row="10" column="4"> <item row="10" column="4">
<layout class="QHBoxLayout" name="EndTimeDiffLayout"> <layout class="QHBoxLayout" name="EndTimeDiffLayout">
<property name="spacing"> <property name="spacing">
<number>0</number> <number>5</number>
</property> </property>
<item> <item>
<widget class="QSpinBox" name="MaxEndTimeDiffSpinBox"> <widget class="QSpinBox" name="MaxEndTimeDiffSpinBox">
@@ -899,7 +902,7 @@
<item row="7" column="4"> <item row="7" column="4">
<layout class="QHBoxLayout" name="BeginTimeDiffLayout"> <layout class="QHBoxLayout" name="BeginTimeDiffLayout">
<property name="spacing"> <property name="spacing">
<number>0</number> <number>5</number>
</property> </property>
<item> <item>
<widget class="QSpinBox" name="MaxBeginTimeDiffSpinBox"> <widget class="QSpinBox" name="MaxBeginTimeDiffSpinBox">
@@ -1049,7 +1052,7 @@
<item row="15" column="4"> <item row="15" column="4">
<layout class="QHBoxLayout" name="RenewTimeDiffLayout"> <layout class="QHBoxLayout" name="RenewTimeDiffLayout">
<property name="spacing"> <property name="spacing">
<number>0</number> <number>5</number>
</property> </property>
<item> <item>
<widget class="QSpinBox" name="MaxRenewTimeDiffSpinBox"> <widget class="QSpinBox" name="MaxRenewTimeDiffSpinBox">
@@ -1092,7 +1095,7 @@
</layout> </layout>
</item> </item>
<item row="15" column="1"> <item row="15" column="1">
<widget class="QLabel" name="label"> <widget class="QLabel" name="MaxRenewTimeDiffLabel">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>80</width> <width>80</width>
@@ -1153,10 +1156,10 @@
<property name="rightMargin"> <property name="rightMargin">
<number>3</number> <number>3</number>
</property> </property>
<property name="horizontalSpacing"> <property name="bottomMargin">
<number>3</number> <number>3</number>
</property> </property>
<property name="verticalSpacing"> <property name="spacing">
<number>5</number> <number>5</number>
</property> </property>
<item row="0" column="0" colspan="2"> <item row="0" column="0" colspan="2">
@@ -1649,6 +1652,21 @@
<string>当前配置</string> <string>当前配置</string>
</property> </property>
<layout class="QGridLayout" name="CurrentConfigLayout"> <layout class="QGridLayout" name="CurrentConfigLayout">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<property name="spacing">
<number>5</number>
</property>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLineEdit" name="CurrentRunConfigEdit"> <widget class="QLineEdit" name="CurrentRunConfigEdit">
<property name="minimumSize"> <property name="minimumSize">
@@ -1775,6 +1793,21 @@
<string>导出路径</string> <string>导出路径</string>
</property> </property>
<layout class="QGridLayout" name="ExportConfigLayout"> <layout class="QGridLayout" name="ExportConfigLayout">
<property name="leftMargin">
<number>3</number>
</property>
<property name="topMargin">
<number>3</number>
</property>
<property name="rightMargin">
<number>3</number>
</property>
<property name="bottomMargin">
<number>3</number>
</property>
<property name="spacing">
<number>5</number>
</property>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QLineEdit" name="ExportUserConfigEdit"> <widget class="QLineEdit" name="ExportUserConfigEdit">
<property name="minimumSize"> <property name="minimumSize">
+8 -8
View File
@@ -241,7 +241,7 @@ class ALMainWindow(QMainWindow, Ui_ALMainWindow):
self.__output_queue, self.__output_queue,
self.__config_paths self.__config_paths
) )
self.__current_timer_task_thread.finishedSignal_TimerWorker.connect(self.onTimerTaskFinished) self.__current_timer_task_thread.TimerTaskWorkerIsFinished.connect(self.onTimerTaskFinished)
self.__current_timer_task_thread.start() self.__current_timer_task_thread.start()
except queue.Empty: except queue.Empty:
self.__is_running_timer_task = False self.__is_running_timer_task = False
@@ -306,7 +306,7 @@ class ALMainWindow(QMainWindow, Ui_ALMainWindow):
): ):
if self.__alConfigWidget: if self.__alConfigWidget:
self.__alConfigWidget.configWidgetCloseSingal.disconnect(self.onConfigWidgetClosed) self.__alConfigWidget.configWidgetIsClosed.disconnect(self.onConfigWidgetClosed)
self.__alConfigWidget.deleteLater() self.__alConfigWidget.deleteLater()
self.__alConfigWidget = None self.__alConfigWidget = None
self.setControlButtons(True, None, None) self.setControlButtons(True, None, None)
@@ -328,7 +328,7 @@ class ALMainWindow(QMainWindow, Ui_ALMainWindow):
): ):
self.__current_timer_task_thread.wait(1000) self.__current_timer_task_thread.wait(1000)
self.__current_timer_task_thread.finishedSignal_TimerWorker.disconnect(self.onTimerTaskFinished) self.__current_timer_task_thread.TimerTaskWorkerIsFinished.disconnect(self.onTimerTaskFinished)
self.__current_timer_task_thread.deleteLater() self.__current_timer_task_thread.deleteLater()
self.__current_timer_task_thread = None self.__current_timer_task_thread = None
self.setControlButtons(None, False, True) self.setControlButtons(None, False, True)
@@ -369,7 +369,7 @@ class ALMainWindow(QMainWindow, Ui_ALMainWindow):
self, self,
self.__config_paths self.__config_paths
) )
self.__alConfigWidget.configWidgetCloseSingal.connect(self.onConfigWidgetClosed) self.__alConfigWidget.configWidgetIsClosed.connect(self.onConfigWidgetClosed)
self.__alConfigWidget.show() self.__alConfigWidget.show()
self.__alConfigWidget.raise_() self.__alConfigWidget.raise_()
self.__alConfigWidget.activateWindow() self.__alConfigWidget.activateWindow()
@@ -387,8 +387,8 @@ class ALMainWindow(QMainWindow, Ui_ALMainWindow):
self.__output_queue, self.__output_queue,
self.__config_paths self.__config_paths
) )
self.__auto_lib_thread.finishedSignal.connect(self.onStopButtonClicked) self.__auto_lib_thread.AutoLibWorkerIsFinished.connect(self.onStopButtonClicked)
self.__auto_lib_thread.finishedWithErrorSignal.connect(self.onStopButtonClicked) self.__auto_lib_thread.AutoLibWorkerFinishedWithError.connect(self.onStopButtonClicked)
self.__auto_lib_thread.start() self.__auto_lib_thread.start()
@Slot() @Slot()
@@ -400,8 +400,8 @@ class ALMainWindow(QMainWindow, Ui_ALMainWindow):
self.showTrace("正在停止操作......") self.showTrace("正在停止操作......")
self.__auto_lib_thread.wait(2000) self.__auto_lib_thread.wait(2000)
self.showTrace("操作已停止") self.showTrace("操作已停止")
self.__auto_lib_thread.finishedSignal.disconnect(self.onStopButtonClicked) self.__auto_lib_thread.AutoLibWorkerIsFinished.disconnect(self.onStopButtonClicked)
self.__auto_lib_thread.finishedWithErrorSignal.disconnect(self.onStopButtonClicked) self.__auto_lib_thread.AutoLibWorkerFinishedWithError.disconnect(self.onStopButtonClicked)
self.__auto_lib_thread.deleteLater() self.__auto_lib_thread.deleteLater()
self.__auto_lib_thread = None self.__auto_lib_thread = None
self.setControlButtons(None, False, True) self.setControlButtons(None, False, True)
+5 -7
View File
@@ -34,13 +34,13 @@
<number>5</number> <number>5</number>
</property> </property>
<property name="leftMargin"> <property name="leftMargin">
<number>3</number> <number>5</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>0</number> <number>0</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>3</number> <number>5</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
@@ -156,11 +156,9 @@
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">background-color: rgb(10, 170, 10); <string notr="true">background-color: #0AAA0A;
font: 12pt &quot;Microsoft YaHei UI&quot;; color: #FFFFFF;
color: rgb(255, 255, 255); font: 700 9pt;</string>
font: 9pt &quot;Segoe UI&quot;;
font: 700 9pt &quot;Microsoft YaHei UI&quot;;</string>
</property> </property>
<property name="text"> <property name="text">
<string>启动脚本</string> <string>启动脚本</string>
+11 -11
View File
@@ -22,8 +22,8 @@ from utils.ConfigReader import ConfigReader
class AutoLibWorker(QThread, MsgBase): class AutoLibWorker(QThread, MsgBase):
finishedSignal = Signal() AutoLibWorkerIsFinished = Signal()
finishedWithErrorSignal = Signal() AutoLibWorkerFinishedWithError = Signal()
def __init__( def __init__(
self, self,
@@ -116,17 +116,17 @@ class AutoLibWorker(QThread, MsgBase):
) )
except Exception as e: except Exception as e:
self._showTrace(f"AutoLibrary 运行时发生异常 : {e}") self._showTrace(f"AutoLibrary 运行时发生异常 : {e}")
self.finishedWithErrorSignal.emit() self.AutoLibWorkerFinishedWithError.emit()
return return
if auto_lib: if auto_lib:
auto_lib.close() auto_lib.close()
self._showTrace("AutoLibrary 运行结束") self._showTrace("AutoLibrary 运行结束")
self.finishedSignal.emit() self.AutoLibWorkerIsFinished.emit()
class TimerTaskWorker(AutoLibWorker): class TimerTaskWorker(AutoLibWorker):
finishedSignal_TimerWorker = Signal(bool, dict) TimerTaskWorkerIsFinished = Signal(bool, dict)
def __init__( def __init__(
self, self,
@@ -139,8 +139,8 @@ class TimerTaskWorker(AutoLibWorker):
super().__init__(input_queue, output_queue, config_paths) super().__init__(input_queue, output_queue, config_paths)
self.__timer_task = timer_task self.__timer_task = timer_task
self.finishedSignal.connect(self.onTimerTaskIsFinished) self.AutoLibWorkerIsFinished.connect(self.onTimerTaskIsFinished)
self.finishedWithErrorSignal.connect(self.onTimerTaskIsError) self.AutoLibWorkerFinishedWithError.connect(self.onTimerTaskIsError)
def run( def run(
self self
@@ -149,18 +149,18 @@ class TimerTaskWorker(AutoLibWorker):
self._showTrace(f"定时任务 {self.__timer_task['name']} 开始运行") self._showTrace(f"定时任务 {self.__timer_task['name']} 开始运行")
super().run() super().run()
@Slot(dict) @Slot()
def onTimerTaskIsError( def onTimerTaskIsError(
self self
): ):
self._showTrace(f"定时任务 {self.__timer_task['name']} 运行时发生异常") self._showTrace(f"定时任务 {self.__timer_task['name']} 运行时发生异常")
self.finishedSignal_TimerWorker.emit(True, self.__timer_task) self.TimerTaskWorkerIsFinished.emit(True, self.__timer_task)
@Slot(dict) @Slot()
def onTimerTaskIsFinished( def onTimerTaskIsFinished(
self self
): ):
self._showTrace(f"定时任务 {self.__timer_task['name']} 运行结束") self._showTrace(f"定时任务 {self.__timer_task['name']} 运行结束")
self.finishedSignal_TimerWorker.emit(False, self.__timer_task) self.TimerTaskWorkerIsFinished.emit(False, self.__timer_task)
+13 -12
View File
@@ -22,7 +22,7 @@ class ALSeatFrame(QFrame):
def __init__( def __init__(
self, self,
seat_number, seat_number,
parent=None parent = None
): ):
super().__init__(parent) super().__init__(parent)
@@ -40,18 +40,19 @@ class ALSeatFrame(QFrame):
self.setLineWidth(2) self.setLineWidth(2)
self.setStyleSheet(""" self.setStyleSheet("""
QFrame { QFrame {
background-color: #4196EB; background-color: #2294FF;
border: 2px solid #4196EB; border: 2px solid #2294FF;
border-radius: 5px; border-radius: 5px;
} }
QLabel { QLabel {
color: #F0F0F0; color: #FFFFFF;
font-weight: bold; font-weight: bold;
} }
""") """)
self.label = QLabel(self.__seat_number, self) self.setCursor(Qt.CursorShape.PointingHandCursor)
self.label.setAlignment(Qt.AlignCenter) self.Label = QLabel(self.__seat_number, self)
self.label.setGeometry(0, 0, 60, 40) self.Label.setAlignment(Qt.AlignCenter)
self.Label.setGeometry(0, 0, 60, 40)
def mousePressEvent( def mousePressEvent(
self, self,
@@ -77,24 +78,24 @@ class ALSeatFrame(QFrame):
self.setStyleSheet(""" self.setStyleSheet("""
QFrame { QFrame {
background-color: #4CAF50; background-color: #4CAF50;
border: 2px solid #388E3C; border: 2px solid #4CAF50;
border-radius: 5px; border-radius: 5px;
color: white; color: white;
} }
QLabel { QLabel {
color: #F0F0F0; color: #FFFFFF;
font-weight: bold; font-weight: bold;
} }
""") """)
else: else:
self.setStyleSheet(""" self.setStyleSheet("""
QFrame { QFrame {
background-color: #4196EB; background-color: #2294FF;
border: 2px solid #4196EB; border: 2px solid #2294FF;
border-radius: 5px; border-radius: 5px;
} }
QLabel { QLabel {
color: #F0F0F0; color: #FFFFFF;
font-weight: bold; font-weight: bold;
} }
""") """)
+6
View File
@@ -67,6 +67,8 @@ class ALSeatMapWidget(QWidget):
self.setWindowTitle(f"选择楼层座位 - AutoLibrary") self.setWindowTitle(f"选择楼层座位 - AutoLibrary")
self.SeatMapWidgetMainLayout = QVBoxLayout(self) self.SeatMapWidgetMainLayout = QVBoxLayout(self)
self.SeatMapWidgetMainLayout.setContentsMargins(5, 5, 5, 5)
self.SeatMapWidgetMainLayout.setSpacing(5)
self.TitleLabel = QLabel(f"楼层座位分布图: {self.__floor}-{self.__room}") self.TitleLabel = QLabel(f"楼层座位分布图: {self.__floor}-{self.__room}")
self.TitleLabel.setAlignment(Qt.AlignmentFlag.AlignCenter) self.TitleLabel.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.TitleLabel.setStyleSheet("font-size: 16px; font-weight: bold; margin: 10px;") self.TitleLabel.setStyleSheet("font-size: 16px; font-weight: bold; margin: 10px;")
@@ -99,9 +101,13 @@ class ALSeatMapWidget(QWidget):
self.ConfirmButton = QPushButton("确认") self.ConfirmButton = QPushButton("确认")
self.ConfirmButton.setFixedSize(80, 25) self.ConfirmButton.setFixedSize(80, 25)
self.ConfirmButton.setAutoDefault(True)
self.ConfirmButton.setDefault(True)
self.CancelButton = QPushButton("取消") self.CancelButton = QPushButton("取消")
self.CancelButton.setFixedSize(80, 25) self.CancelButton.setFixedSize(80, 25)
self.SeatMapWidgetControlLayout = QHBoxLayout() self.SeatMapWidgetControlLayout = QHBoxLayout()
self.SeatMapWidgetControlLayout.setContentsMargins(0, 0, 0, 0)
self.SeatMapWidgetControlLayout.setSpacing(5)
self.SeatMapWidgetControlLayout.setAlignment(Qt.AlignmentFlag.AlignRight) self.SeatMapWidgetControlLayout.setAlignment(Qt.AlignmentFlag.AlignRight)
self.SeatMapWidgetControlLayout.addWidget(self.CancelButton) self.SeatMapWidgetControlLayout.addWidget(self.CancelButton)
self.SeatMapWidgetControlLayout.addWidget(self.ConfirmButton) self.SeatMapWidgetControlLayout.addWidget(self.ConfirmButton)
+5 -5
View File
@@ -71,7 +71,7 @@ class TimerTaskItemWidget(QWidget):
ExecuteTimeStr = self.__timer_task["execute_time"].strftime("%Y-%m-%d %H:%M:%S") ExecuteTimeStr = self.__timer_task["execute_time"].strftime("%Y-%m-%d %H:%M:%S")
ExecuteTimeLabel = QLabel(f"执行时间: {ExecuteTimeStr}") ExecuteTimeLabel = QLabel(f"执行时间: {ExecuteTimeStr}")
ExecuteTimeLabel.setStyleSheet("color: gray;") ExecuteTimeLabel.setStyleSheet("color: #969696;")
ExecuteTimeLabel.setFixedHeight(20) ExecuteTimeLabel.setFixedHeight(20)
self.TaskInfoLayout.addWidget(ExecuteTimeLabel) self.TaskInfoLayout.addWidget(ExecuteTimeLabel)
@@ -93,15 +93,15 @@ class TimerTaskItemWidget(QWidget):
TaskStatusColor = "#4CAF50" TaskStatusColor = "#4CAF50"
case TimerTaskStatus.ERROR: case TimerTaskStatus.ERROR:
TaskStatusText = "执行失败" TaskStatusText = "执行失败"
TaskStatusColor = "#FF5722" TaskStatusColor = "#DC0000"
case TimerTaskStatus.OUTDATED: case TimerTaskStatus.OUTDATED:
TaskStatusText = "已过期" TaskStatusText = "已过期"
TaskStatusColor = "#FF5722" TaskStatusColor = "#DC0000"
TaskStatusLabel = QLabel(TaskStatusText) TaskStatusLabel = QLabel(TaskStatusText)
TaskStatusLabel.setStyleSheet(f""" TaskStatusLabel.setStyleSheet(f"""
QLabel {{ QLabel {{
background-color: {TaskStatusColor}; background-color: {TaskStatusColor};
color: white; color: #FFFFFF;
border-radius: 5px; border-radius: 5px;
font-weight: bold; font-weight: bold;
}} }}
@@ -116,7 +116,7 @@ class TimerTaskItemWidget(QWidget):
TaskModeLabel.setStyleSheet(f""" TaskModeLabel.setStyleSheet(f"""
QLabel {{ QLabel {{
background-color: {TaskModeColor}; background-color: {TaskModeColor};
color: white; color: #FFFFFF;
border-radius: 5px; border-radius: 5px;
font-weight: bold; font-weight: bold;
}} }}
+1 -1
View File
@@ -153,7 +153,7 @@
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">QLabel { <string notr="true">QLabel {
color: #FF5722 color: #DC0000
}</string> }</string>
</property> </property>
<property name="text"> <property name="text">
+3 -3
View File
@@ -5,11 +5,11 @@
workflow process. Do not edit manually. workflow process. Do not edit manually.
This file is auto-generated during the workflow process. This file is auto-generated during the workflow process.
Last updated: 2026-01-17 17:51:55 UTC Last updated: 2026-01-17 18:18:12 UTC
""" """
AL_VERSION = "1.0.3" AL_VERSION = "1.0.4"
AL_TAG = "v1.0.3" AL_TAG = "v1.0.4"
AL_COMMIT_SHA = "local" AL_COMMIT_SHA = "local"
AL_COMMIT_DATE = "null" # time zone : UTC AL_COMMIT_DATE = "null" # time zone : UTC
AL_BUILD_DATE = "null" # time zone : UTC AL_BUILD_DATE = "null" # time zone : UTC