Spaces:
Running
Running
| from PySide6 import QtWidgets | |
| from PySide6.QtGui import QIcon, Qt | |
| from PySide6.QtWidgets import ( | |
| QDialog, QLabel, QLineEdit, QVBoxLayout, QHBoxLayout, QPushButton | |
| ) | |
| from videotrans.configure.config import ROOT_DIR, tr | |
| from videotrans.util import tools | |
| class SetThreadTransDubb(QDialog): | |
| def __init__(self, parent=None, name='trans', nums=5, sec=0, ai_nums=500): | |
| super().__init__(parent) | |
| self.nums = nums | |
| self.sec = sec | |
| self.name = name | |
| self.ai_nums = ai_nums | |
| # 设置该窗口最小宽高为 400x300 | |
| self.resize(400, 250) | |
| self.setWindowIcon(QIcon(f"{ROOT_DIR}/videotrans/styles/icon.ico")) | |
| # 布局 | |
| layout = QVBoxLayout() | |
| # layout 顶部对齐 | |
| layout.setAlignment(Qt.AlignTop) | |
| # 创建标签和输入框 | |
| if name == 'trans': | |
| # 传统翻译 | |
| self.label = QLabel(tr("Subtitles lines:")) | |
| else: | |
| self.label = QLabel(tr("Number dubbing threads")) | |
| self.input = QLineEdit() | |
| self.input.setText(str(self.nums)) | |
| num_layout = QHBoxLayout() | |
| num_layout.addWidget(self.label) | |
| num_layout.addWidget(self.input) | |
| layout.addLayout(num_layout) | |
| if name == 'trans': | |
| # 设置对话框标题 | |
| self.setWindowTitle(tr("Set Translation subtitles rows")) | |
| wait_msg = tr("Wait/s:") | |
| # ai翻译 | |
| self.ailabel = QLabel(tr("Number subtitle lines AI translation")) | |
| self.aiinput = QLineEdit() | |
| self.aiinput.setText(str(self.ai_nums)) | |
| ainum_layout = QHBoxLayout() | |
| ainum_layout.addWidget(self.ailabel) | |
| ainum_layout.addWidget(self.aiinput) | |
| layout.addLayout(ainum_layout) | |
| else: | |
| wait_msg = tr("Wait/s/1 thread:") | |
| self.setWindowTitle(tr("Number dubbing threads")) | |
| self.wait_label = QLabel(wait_msg) | |
| self.wait_input = QLineEdit() | |
| self.wait_input.setText(str(self.sec)) | |
| tips_msg = tr("The number of seconds to pause and wait after each completed request") | |
| self.wait_input.setToolTip(tips_msg) | |
| # 创建按钮 | |
| self.ok_button = QPushButton(tr("Save")) | |
| self.ok_button.clicked.connect(self.accept) # 点击OK按钮后关闭对话框 | |
| # 设置确认按钮高度为35 | |
| self.ok_button.setFixedHeight(35) | |
| wait_layout = QHBoxLayout() | |
| wait_layout.addWidget(self.wait_label) | |
| wait_layout.addWidget(self.wait_input) | |
| layout.addLayout(wait_layout) | |
| tips_label = QLabel() | |
| tips_label.setText(tips_msg) | |
| # OK按钮布局 | |
| layout.addWidget(tips_label) | |
| layout.addWidget(self.ok_button) | |
| if name == 'trans': | |
| help_btn = QtWidgets.QPushButton() | |
| help_btn.setStyleSheet("background-color: rgba(255, 255, 255,0);color:#777777") | |
| help_btn.setObjectName("help_btn") | |
| help_btn.setCursor(Qt.PointingHandCursor) | |
| help_btn.setText(tr("Help document")) | |
| help_btn.clicked.connect(lambda: tools.open_url(url='https://pyvideotrans.com/selecttranslate')) | |
| layout.addWidget(help_btn) | |
| self.setLayout(layout) | |
| def get_values(self): | |
| num, wait = self.input.text().strip(), self.wait_input.text().strip() | |
| ainum = 0 | |
| if self.name == 'trans': | |
| ainum = int(self.aiinput.text().strip()) | |
| try: | |
| num, wait = max(int(num), 1), max(round(float(wait), 1), 0) | |
| except (TypeError,ValueError): | |
| num = 5 | |
| wait = 0 | |
| return num, wait, ainum | |