feat(ui): 关机等电源操作添加100s倒计时

This commit is contained in:
DLmaster
2025-03-14 23:06:51 +08:00
parent 364af4b9c5
commit d4d479ca20
5 changed files with 78 additions and 9 deletions

View File

@@ -26,7 +26,7 @@ v4.2
"""
from PySide6.QtWidgets import QWidget, QWidget, QLabel, QHBoxLayout, QSizePolicy
from PySide6.QtCore import Qt, QTime, QEvent, QSize
from PySide6.QtCore import Qt, QTime, QTimer, QEvent, QSize
from PySide6.QtGui import QIcon, QPixmap, QPainter, QPainterPath
from qfluentwidgets import (
LineEdit,
@@ -54,6 +54,7 @@ from qfluentwidgets import (
ExpandSettingCard,
ToolButton,
PushButton,
ProgressRing,
)
from qfluentwidgets.common.overload import singledispatchmethod
import os
@@ -108,6 +109,52 @@ class ComboBoxMessageBox(MessageBoxBase):
self.viewLayout.addWidget(Widget)
class ProgressRingMessageBox(MessageBoxBase):
"""进度环倒计时对话框"""
def __init__(self, parent, title: str):
super().__init__(parent)
self.title = SubtitleLabel(title)
self.time = 100
Widget = QWidget()
Layout = QHBoxLayout(Widget)
self.ring = ProgressRing()
self.ring.setRange(0, 100)
self.ring.setValue(100)
self.ring.setTextVisible(True)
self.ring.setFormat("%p 秒")
self.ring.setFixedSize(100, 100)
self.ring.setStrokeWidth(4)
Layout.addWidget(self.ring)
self.yesButton.hide()
self.cancelButton.clicked.connect(self.__quit_timer)
self.buttonLayout.insertStretch(1)
# 将组件添加到布局中
self.viewLayout.addWidget(self.title)
self.viewLayout.addWidget(Widget)
self.timer = QTimer(self)
self.timer.timeout.connect(self.__update_time)
self.timer.start(1000)
def __update_time(self):
self.time -= 1
self.ring.setValue(self.time)
if self.time == 0:
self.timer.stop()
self.timer.deleteLater()
self.yesButton.click()
def __quit_timer(self):
self.timer.stop()
self.timer.deleteLater()
class LineEditSettingCard(SettingCard):
"""Setting card with LineEdit"""

View File

@@ -30,5 +30,6 @@ __author__ = "DLmaster361 <DLmaster_361@163.com>"
__license__ = "GPL-3.0 license"
from .main_window import AUTO_MAA
from .Widget import ProgressRingMessageBox
__all__ = ["AUTO_MAA"]
__all__ = ["AUTO_MAA", "ProgressRingMessageBox"]

View File

@@ -72,6 +72,7 @@ class AUTO_MAA(MSFluentWindow):
self.splashScreen = SplashScreen(self.windowIcon(), self)
self.show_ui("显示主窗口", if_quick=True)
TaskManager.main_window = self.window()
MainInfoBar.main_window = self.window()
System.main_window = self.window()
@@ -260,7 +261,9 @@ class AUTO_MAA(MSFluentWindow):
)
if "网络错误" not in result:
Up = PushButton("更新")
Up.clicked.connect(lambda: self.setting.get_update(if_question=False))
Up.clicked.connect(
lambda: self.setting.get_update(if_question=False)
)
Up.clicked.connect(info.close)
info.addWidget(Up)
info.show()