优化脚本仪表盘排版

可以直接在仪表盘里面开关用户状态了
This commit is contained in:
Zrief
2025-05-15 21:20:30 +08:00
committed by GitHub
parent a5d733c8df
commit 5bdb5ad2bf
2 changed files with 31 additions and 14 deletions

View File

@@ -311,12 +311,16 @@ class SwitchSettingCard(SettingCard):
self.switchButton.setChecked(isChecked)
self.switchButton.setText(self.tr("On") if isChecked else self.tr("Off"))
# 这两个函数似乎没用?我注释掉仍能运行。
# setChecked是qfluentw中SwitchButton类的内置方法
# ExampleswitchButton.setChecked(True)# 更改按钮状态为打开
def setChecked(self, isChecked: bool):
self.setValue(isChecked)
# def setChecked(self, isChecked: bool):
# self.setValue(isChecked)
def isChecked(self):
return self.switchButton.isChecked()
# def isChecked(self):
# return self.switchButton.isChecked()
class RangeSettingCard(SettingCard):

View File

@@ -47,8 +47,9 @@ from qfluentwidgets import (
PushSettingCard,
TableWidget,
PrimaryToolButton,
SwitchButton,
)
from PySide6.QtCore import Signal
from PySide6.QtCore import Signal,Qt
from datetime import datetime
from functools import partial
from pathlib import Path
@@ -1162,6 +1163,12 @@ class MemberManager(QWidget):
Config.PASSWORD_refreshed.connect(self.load_info)
def load_info(self):
# 使用闭包工厂函数捕获当前config
def create_handler(config_obj):
def handler(checked):
# 使用配置项的set方法自动触发信号
config_obj.set(config_obj.Info_Status, checked)
return handler
self.user_data = Config.member_dict[self.name]["UserData"]
@@ -1170,6 +1177,7 @@ class MemberManager(QWidget):
for name, info in self.user_data.items():
config = info["Config"]
handler = create_handler(config)
text_list = []
if not config.get(config.Data_IfPassCheck):
@@ -1190,6 +1198,7 @@ class MemberManager(QWidget):
else "本周剿灭未完成"
)
# 跳转按钮
button = PrimaryToolButton(
FluentIcon.CHEVRON_RIGHT, self
)
@@ -1198,6 +1207,15 @@ class MemberManager(QWidget):
partial(self.switch_to.emit, name)
)
# 状态开关
switch_button = SwitchButton()
switch_button.setOffText("")
switch_button.setOnText("")
switch_button.setChecked(True if config.get(config.Info_Status)
and config.get(config.Info_RemainedDay) != 0 else False )# 初始化开关状态
# 将开关的bool同步
switch_button.checkedChanged.connect(handler)
self.dashboard.setItem(
int(name[3:]) - 1,
0,
@@ -1220,15 +1238,10 @@ class MemberManager(QWidget):
else "******"
),
)
self.dashboard.setItem(
int(name[3:]) - 1,
3,
QTableWidgetItem(
"启用"
if config.get(config.Info_Status)
and config.get(config.Info_RemainedDay) != 0
else "禁用"
),
self.dashboard.setCellWidget(
int(name[3:]) - 1,
3,
switch_button
)
self.dashboard.setItem(
int(name[3:]) - 1,