feat(ui): 关机等电源操作添加100s倒计时
This commit is contained in:
@@ -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"""
|
||||
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user