优化脚本仪表盘排版
可以直接在仪表盘里面开关用户状态了
This commit is contained in:
@@ -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类的内置方法,
|
||||||
|
# Example:switchButton.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):
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user