Files
yaofanguk--video-subtitle-e…/ui/setting_interface.py
T
wehub-resource-sync 39a086b41b
Build Windows CPU / build (push) Has been cancelled
Build Windows CUDA 10.2 / build (push) Has been cancelled
Build Windows CUDA 11.8 / build (push) Has been cancelled
Build Windows CUDA 12.6 / build (push) Has been cancelled
Build Windows DirectML / build (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:08:08 +08:00

90 lines
3.5 KiB
Python

from PySide6 import QtWidgets
from qfluentwidgets import (FluentWindow, PushButton, Slider, ProgressBar, PlainTextEdit,
setTheme, Theme, FluentIcon, CardWidget, SettingCardGroup,
ComboBoxSettingCard, SwitchSettingCard, RangeSettingCard,
PushSettingCard, PrimaryPushSettingCard, OptionsSettingCard,
FolderListSettingCard, HyperlinkCard, ColorSettingCard,
CustomColorSettingCard)
from backend.config import config, tr, HARDWARD_ACCELERATION_OPTION
class SettingInterface(QtWidgets.QVBoxLayout):
def __init__(self, parent):
super().__init__()
self.setContentsMargins(16, 16, 16, 16)
# 界面语言设置
self.interface_combo = ComboBoxSettingCard(
configItem=config.interface,
icon=FluentIcon.LANGUAGE,
title=tr["LanguageModeGUI"]["InterfaceLanguage"],
content="",
parent=parent,
texts=config.intefaceTexts.keys(),
)
self.addWidget(self.interface_combo)
# 字幕语言设置
self.language_combo = ComboBoxSettingCard(
configItem=config.language,
icon=FluentIcon.FONT,
title=tr["LanguageModeGUI"]["SubtitleLanguage"],
content="",
parent=parent,
texts=[tr['Language'][i] for i in config.language.validator.options],
)
self.addWidget(self.language_combo)
# 识别模式设置
self.mode_combo = ComboBoxSettingCard(
configItem=config.mode,
icon=FluentIcon.SETTING,
title=tr["LanguageModeGUI"]["Mode"],
content="",
parent=parent,
texts=[tr['Mode'][i] for i in config.mode.validator.options],
)
self.addWidget(self.mode_combo)
# 是否启用硬件加速
self.hardware_acceleration = SwitchSettingCard(
configItem=config.hardwareAcceleration,
icon=FluentIcon.SPEED_HIGH,
title=tr["Setting"]["HardwareAcceleration"],
content=tr["Setting"]["HardwareAccelerationDesc"],
parent=parent
)
self.addWidget(self.hardware_acceleration)
# 如果硬件加速选项被禁用, 设置硬件加速为False并只读
if not HARDWARD_ACCELERATION_OPTION:
self.hardware_acceleration.switchButton.setChecked(False)
self.hardware_acceleration.switchButton.setEnabled(False)
config.set(config.hardwareAcceleration, False)
# 是否生成TXT文本字幕
self.generate_txt_switch = SwitchSettingCard(
configItem=config.generateTxt,
icon=FluentIcon.DOCUMENT,
title=tr["Setting"]["GenerateTxt"],
content="",
parent=parent
)
self.addWidget(self.generate_txt_switch)
# 是否重新分词
self.word_segmentation = SwitchSettingCard(
configItem=config.wordSegmentation,
icon=FluentIcon.EDIT,
title=tr["Setting"]["WordSegmentation"],
content=tr["Setting"]["WordSegmentationDesc"],
parent=parent
)
self.addWidget(self.word_segmentation)
# 添加一些空间
self.addStretch(1)
def reset_setting(self):
"""重置所有设置为默认值"""
# 这里需要实现重置逻辑
pass