This commit is contained in:
2025-10-10 17:16:08 +08:00
parent ed947743fc
commit 062b1e24e9
281 changed files with 536 additions and 109 deletions

View File

@@ -7,6 +7,7 @@ from zhdate import ZhDate
from codes.common import clibs
from codes.common.signal_bus import signal_bus
from codes.common.qss_reloader import qss_reloader
class LunarClockLabel(QLabel):
@@ -35,7 +36,7 @@ class LunarClockLabel(QLabel):
g = dt.date()
z = ZhDate.today()
week = "一二三四五六日"[g.dayOfWeek() - 1]
text = f"{dt.toString('hh:mm:ss')}"
text = f"{dt.toString('hh:mm')}"
self.setText(text)
@@ -50,25 +51,28 @@ class DoubleClickLabel(QLabel):
class WidgetWithBg(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.predos()
self.pre_do()
self.init_ui()
self.setup_slot()
self.post_do()
def predos(self):
def pre_do(self):
font_id = QFontDatabase.addApplicationFont(f"{clibs.base_path}/assets/media/font/OldEnglishTextMT/OldEnglishTextMT.ttf")
family = QFontDatabase.applicationFontFamilies(font_id)[0]
self.lb_font = QFont(family, 28, QFont.Weight.Medium)
self.lb_font = QFont(family, 32, QFont.Weight.Medium)
self.background_pixmap = QPixmap(clibs.bg)
def init_ui(self):
self.setObjectName("WidgetWithBg")
layout_v = QVBoxLayout()
# 最上层的空白区
self.lb_empty_up = QLabel(self)
self.lb_empty_up.setObjectName("lb_empty_up")
layout_v.addWidget(self.lb_empty_up)
# 头像区
layout_h_1 = QHBoxLayout()
layout_h_1.addStretch(1)
self.lb_avatar = DoubleClickLabel(self)
self.lb_avatar.setObjectName("lb_avatar")
self.lb_avatar.setAlignment(Qt.AlignmentFlag.AlignCenter)
avatar = QPixmap(clibs.avatar)
avatar = self.circle_pixmap(avatar, 200)
@@ -77,54 +81,41 @@ class WidgetWithBg(QWidget):
self.lb_avatar.setFixedSize(144, 144)
layout_h_1.addWidget(self.lb_avatar)
self.lb_time = LunarClockLabel(self, flag=1)
self.lb_time.setObjectName("lb_time")
self.lb_time.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.lb_time.setStyleSheet("color: rgba(255,255,255,255);")
self.lb_time.setFont(QFont("Arial Black", 56, QFont.Weight.Bold))
layout_h_1.addWidget(self.lb_time)
layout_h_1.addStretch(1)
layout_v.addLayout(layout_h_1)
# layout_v.addWidget(self.lb_avatar, alignment=Qt.AlignmentFlag.AlignCenter)
# 艺术字区
self.lb_name = QLabel(self)
self.lb_name.setObjectName("lb_name")
self.lb_name.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.lb_name.setText("Manford Fan · Code Create Life")
self.lb_name.setStyleSheet("color: rgba(255,255,255,255);")
self.lb_name.setFont(self.lb_font)
layout_v.addWidget(self.lb_name)
# 时间区-左横线
layout_h = QHBoxLayout()
self.line_left = QFrame(self)
self.line_left.setObjectName("line_left")
self.line_left.setFrameShape(QFrame.Shape.HLine)
self.line_left.setFrameShadow(QFrame.Shadow.Plain)
self.line_left.setStyleSheet("""
QFrame {
border: none;
background-color: rgba(255, 255, 255, 40);
}
""")
policy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
self.line_left.setSizePolicy(policy)
self.line_left.setLineWidth(1)
self.line_left.setFixedWidth(100)
# 时间区-右横线
self.line_right = QFrame(self)
self.line_right.setObjectName("line_right")
self.line_right.setFrameShape(QFrame.Shape.HLine)
self.line_right.setFrameShadow(QFrame.Shadow.Plain)
self.line_right.setStyleSheet("""
QFrame {
border: none;
background-color: rgba(255, 255, 255, 40);
}
""")
policy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
self.line_right.setSizePolicy(policy)
self.line_right.setLineWidth(1)
self.line_right.setFixedWidth(100)
# 时间区-时间
self.lb_date = LunarClockLabel(self)
self.lb_date.setObjectName("lb_date")
self.lb_date.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.lb_date.setStyleSheet("color: rgba(255,255,255,255);")
self.lb_date.setFont(QFont("Consolas", 12, QFont.Weight.Bold))
layout_h.addStretch(1)
layout_h.addWidget(self.line_left)
layout_h.addWidget(self.lb_date)
@@ -133,21 +124,22 @@ class WidgetWithBg(QWidget):
layout_v.addLayout(layout_h)
self.lb_proverb = QLabel(self)
self.lb_proverb.setObjectName("lb_proverb")
self.lb_proverb.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.lb_proverb.setText(clibs.proverb)
self.lb_proverb.setStyleSheet("color: rgba(255,255,255,255);")
self.lb_proverb.setFont(QFont("Consolas", 14, QFont.Weight.Bold))
layout_v.addWidget(self.lb_proverb)
self.le_password = QLineEdit(self)
self.le_password.setObjectName("le_password")
self.le_password.setEchoMode(QLineEdit.EchoMode.Password)
self.le_password.setFont(QFont("Consolas", 12, QFont.Weight.Normal))
# self.le_password.setFont(QFont("Consolas", 12, QFont.Weight.Normal))
self.le_password.setMinimumWidth(300)
self.le_password.setFixedHeight(30)
layout_v.addWidget(self.le_password, alignment=Qt.AlignmentFlag.AlignCenter)
self.hide_le_password()
self.lb_empty_down = QLabel(self)
self.lb_empty_down.setObjectName("lb_empty_down")
layout_v.addWidget(self.lb_empty_down)
layout_v.setStretch(0, 2) # empty up
@@ -159,6 +151,10 @@ class WidgetWithBg(QWidget):
layout_v.setStretch(6, 2) # empty down
self.setLayout(layout_v)
def post_do(self):
qss_reloader.register(clibs.qss_home_overlay, self)
self.setup_slot()
def setup_slot(self):
self.lb_avatar.doubleClicked.connect(self.toggle_auth_show)
self.le_password.returnPressed.connect(self.validate_password)