优化脚本仪表盘排版

可以直接在仪表盘里面开关用户状态了
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

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

View File

@@ -47,8 +47,9 @@ from qfluentwidgets import (
PushSettingCard, PushSettingCard,
TableWidget, TableWidget,
PrimaryToolButton, PrimaryToolButton,
SwitchButton,
) )
from PySide6.QtCore import Signal from PySide6.QtCore import Signal,Qt
from datetime import datetime from datetime import datetime
from functools import partial from functools import partial
from pathlib import Path from pathlib import Path
@@ -1162,6 +1163,12 @@ class MemberManager(QWidget):
Config.PASSWORD_refreshed.connect(self.load_info) Config.PASSWORD_refreshed.connect(self.load_info)
def load_info(self): 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"] self.user_data = Config.member_dict[self.name]["UserData"]
@@ -1170,6 +1177,7 @@ class MemberManager(QWidget):
for name, info in self.user_data.items(): for name, info in self.user_data.items():
config = info["Config"] config = info["Config"]
handler = create_handler(config)
text_list = [] text_list = []
if not config.get(config.Data_IfPassCheck): if not config.get(config.Data_IfPassCheck):
@@ -1190,6 +1198,7 @@ class MemberManager(QWidget):
else "本周剿灭未完成" else "本周剿灭未完成"
) )
# 跳转按钮
button = PrimaryToolButton( button = PrimaryToolButton(
FluentIcon.CHEVRON_RIGHT, self FluentIcon.CHEVRON_RIGHT, self
) )
@@ -1198,6 +1207,15 @@ class MemberManager(QWidget):
partial(self.switch_to.emit, name) 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( self.dashboard.setItem(
int(name[3:]) - 1, int(name[3:]) - 1,
0, 0,
@@ -1220,15 +1238,10 @@ class MemberManager(QWidget):
else "******" else "******"
), ),
) )
self.dashboard.setItem( self.dashboard.setCellWidget(
int(name[3:]) - 1, int(name[3:]) - 1,
3, 3,
QTableWidgetItem( switch_button
"启用"
if config.get(config.Info_Status)
and config.get(config.Info_RemainedDay) != 0
else "禁用"
),
) )
self.dashboard.setItem( self.dashboard.setItem(
int(name[3:]) - 1, int(name[3:]) - 1,