Skip to content

Commit e2e7193

Browse files
[+] 新增可变透明度
1 parent d731720 commit e2e7193

4 files changed

Lines changed: 266 additions & 32 deletions

File tree

Config.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ def initConfig() -> None:
3838
'YOUDAO_FREE_RIDER': False,
3939
'CAIYUN_FREE_RIDER': False,
4040
'BAIDU_FREE_RIDER': False,
41-
'TENCENT_FREE_RIDER': False}
41+
'TENCENT_FREE_RIDER': False,
42+
'OPACITY': 95}
4243
writeConfig(emptyData)
4344

4445
if(not os.path.exists(configPath)):

GUI.py

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,17 +125,26 @@ def __init__(self, parent) -> None:
125125
def closeEvent(self, event):
126126
self.parent.Status = True
127127
self.parent.setEnabled(True)
128+
if ((data := readConfig()) != self.getConfig()):
129+
reply = QtWidgets.QMessageBox.warning (self, '设置尚未保存',
130+
"是否保存再关闭窗口?", QtWidgets.QMessageBox.StandardButton.Save |
131+
QtWidgets.QMessageBox.StandardButton.Discard, QtWidgets.QMessageBox.StandardButton.Discard)
132+
if reply == QtWidgets.QMessageBox.StandardButton.Save:
133+
self.saveConfig()
134+
else:
135+
self.parent.changeOpacity(data['OPACITY'])
128136

129137
def setupUi(self, Config):
130138
super().setupUi(Config)
131-
Config.setWindowOpacity(0.9)
139+
Config.setWindowOpacity(1)
132140
Config.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
133141

134142
def replaceWithCurrentConfig(self):
135143
self.ListWidget_SelectableSource.clear()
136144
self.ListWidget_SelectedSource.clear()
137-
self.Label_ShortcutKeyText.setText(self.parent.Hotkey_OCR)
145+
self.Label_ShortcutKeyText.setText(self.Hotkey_OCR)
138146
configDict = readConfig()
147+
self.spinBox_Opacity.setValue(configDict['OPACITY'])
139148
for each in self.LineEditMapping:
140149
self.LineEditMapping[each].setText(configDict[each])
141150
for each in self.FreeRiderMapping:
@@ -200,19 +209,32 @@ def cancelHotKey(self):
200209
def showGetSecretWidget(self):
201210
self.getSecretWidget.show()
202211

203-
def saveConfig(self):
212+
def getConfig(self) -> dict|None:
204213
if(not self.getCurrentSelectedTranslator()):
205214
QtWidgets.QMessageBox.critical(self,"配置有误","至少选择一个翻译源!")
206-
return
215+
return None
207216
data = {each: self.LineEditMapping[each].text() for each in self.LineEditMapping}
208217
data.update({each: self.FreeRiderMapping[each].isChecked() for each in self.FreeRiderMapping}) # type: ignore
209218
data['SELECTED_TRANSLATORS'] = self.getCurrentSelectedTranslator() # type: ignore
210219
data['Hotkey_OCR'] = self.Hotkey_OCR
220+
data['OPACITY'] = self.horizontalSlider_Opacity.value()
221+
return data
222+
223+
def saveConfig(self):
224+
if (data := self.getConfig()) is None:
225+
return
211226
writeConfig(data)
212227
self.parent.changeHotkey(self.Hotkey_OCR)
213228
self.parent.updateTranslatorList(self.getCurrentSelectedTranslator())
214229
reloadOCRConfig(); reloadTranslatorConfig()
215230
self.close()
231+
232+
def changeHorizontalSliderOpacity(self, value):
233+
self.horizontalSlider_Opacity.setValue(value)
234+
self.parent.changeOpacity(value)
235+
236+
def changeSpinBoxOpacity(self, _value):
237+
self.spinBox_Opacity.setValue(self.horizontalSlider_Opacity.value())
216238

217239

218240
class dictWindow_class(QtWidgets.QMainWindow, Ui_dict_Window):
@@ -300,11 +322,11 @@ class TransAssistant_class(QtWidgets.QMainWindow, Ui_OCR_Window):
300322
def setupUi(self, Config):
301323
super(TransAssistant_class, self).setupUi(Config)
302324
Config.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
303-
Config.setWindowOpacity(0.8)
304325
Config.OCRButton.setEnabled(self.AreaInit)
305326
Config.OCRButtonPlus.setEnabled(self.AreaInit)
306327
DesktopSize = self.screen().availableSize()
307328
Config.move((DesktopSize.width() * 0.54).__int__(), (DesktopSize.height() * 0.41).__int__())
329+
self.changeOpacity(self.ConfigDict['OPACITY'])
308330
# Config.setAttribute(QtCore.Qt.WA_TranslucentBackground,True)
309331

310332
def __init__(self):
@@ -490,6 +512,9 @@ def showDictWindow(self):
490512
self.selectionTextChange.emit(self.selectionText)
491513
self.dictWindow.inputLineEdit.editingFinished.emit()
492514
self.dictWindow.show()
515+
516+
def changeOpacity(self, value):
517+
self.setWindowOpacity(value/100)
493518

494519
def runGUI():
495520
GUI_APP = QtWidgets.QApplication(sys.argv)

config_style.py

Lines changed: 55 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def setupUi(self, Config):
3232
self.scrollArea.setWidgetResizable(False)
3333
self.scrollArea.setObjectName("scrollArea")
3434
self.scrollAreaWidgetContents = QtWidgets.QWidget()
35-
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, -551, 450, 1050))
35+
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, -651, 450, 1150))
3636
self.scrollAreaWidgetContents.setMinimumSize(QtCore.QSize(450, 600))
3737
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
3838
self.Label_MasterTitle = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
@@ -395,14 +395,14 @@ def setupUi(self, Config):
395395
self.Line_4.setLineWidth(2)
396396
self.Line_4.setFrameShape(QtWidgets.QFrame.Shape.HLine)
397397
self.Line_4.setObjectName("Line_4")
398-
self.Label_TranslatorAPISecretSetting_2 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
399-
self.Label_TranslatorAPISecretSetting_2.setGeometry(QtCore.QRect(20, 890, 221, 20))
398+
self.Label_OCRAPISetting = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
399+
self.Label_OCRAPISetting.setGeometry(QtCore.QRect(20, 890, 221, 20))
400400
font = QtGui.QFont()
401401
font.setFamily("Microsoft YaHei UI")
402402
font.setPointSize(16)
403403
font.setUnderline(False)
404-
self.Label_TranslatorAPISecretSetting_2.setFont(font)
405-
self.Label_TranslatorAPISecretSetting_2.setObjectName("Label_TranslatorAPISecretSetting_2")
404+
self.Label_OCRAPISetting.setFont(font)
405+
self.Label_OCRAPISetting.setObjectName("Label_OCRAPISetting")
406406
self.LineEdit_OCRAPPID = QtWidgets.QLineEdit(parent=self.scrollAreaWidgetContents)
407407
self.LineEdit_OCRAPPID.setGeometry(QtCore.QRect(30, 940, 411, 31))
408408
font = QtGui.QFont()
@@ -428,13 +428,13 @@ def setupUi(self, Config):
428428
self.LineEdit_OCRKEY.setFont(font)
429429
self.LineEdit_OCRKEY.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus)
430430
self.LineEdit_OCRKEY.setObjectName("LineEdit_OCRKEY")
431-
self.Label_Tencent_2 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
432-
self.Label_Tencent_2.setGeometry(QtCore.QRect(30, 920, 131, 20))
431+
self.Label_XunFei = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
432+
self.Label_XunFei.setGeometry(QtCore.QRect(30, 920, 131, 20))
433433
font = QtGui.QFont()
434434
font.setFamily("Microsoft YaHei UI")
435435
font.setPointSize(11)
436-
self.Label_Tencent_2.setFont(font)
437-
self.Label_Tencent_2.setObjectName("Label_Tencent_2")
436+
self.Label_XunFei.setFont(font)
437+
self.Label_XunFei.setObjectName("Label_XunFei")
438438
self.PushButton_GetFreeOCRKEY = QtWidgets.QPushButton(parent=self.scrollAreaWidgetContents)
439439
self.PushButton_GetFreeOCRKEY.setGeometry(QtCore.QRect(340, 900, 101, 31))
440440
font = QtGui.QFont()
@@ -443,6 +443,45 @@ def setupUi(self, Config):
443443
self.PushButton_GetFreeOCRKEY.setFont(font)
444444
self.PushButton_GetFreeOCRKEY.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus)
445445
self.PushButton_GetFreeOCRKEY.setObjectName("PushButton_GetFreeOCRKEY")
446+
self.horizontalSlider_Opacity = QtWidgets.QSlider(parent=self.scrollAreaWidgetContents)
447+
self.horizontalSlider_Opacity.setGeometry(QtCore.QRect(200, 1090, 241, 22))
448+
self.horizontalSlider_Opacity.setMouseTracking(False)
449+
self.horizontalSlider_Opacity.setTabletTracking(False)
450+
self.horizontalSlider_Opacity.setFocusPolicy(QtCore.Qt.FocusPolicy.WheelFocus)
451+
self.horizontalSlider_Opacity.setMinimum(20)
452+
self.horizontalSlider_Opacity.setMaximum(100)
453+
self.horizontalSlider_Opacity.setProperty("value", 100)
454+
self.horizontalSlider_Opacity.setTracking(True)
455+
self.horizontalSlider_Opacity.setOrientation(QtCore.Qt.Orientation.Horizontal)
456+
self.horizontalSlider_Opacity.setTickPosition(QtWidgets.QSlider.TickPosition.NoTicks)
457+
self.horizontalSlider_Opacity.setObjectName("horizontalSlider_Opacity")
458+
self.Line_5 = QtWidgets.QFrame(parent=self.scrollAreaWidgetContents)
459+
self.Line_5.setGeometry(QtCore.QRect(10, 1040, 441, 21))
460+
self.Line_5.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
461+
self.Line_5.setLineWidth(2)
462+
self.Line_5.setFrameShape(QtWidgets.QFrame.Shape.HLine)
463+
self.Line_5.setObjectName("Line_5")
464+
self.Label_OpacitySetting = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
465+
self.Label_OpacitySetting.setGeometry(QtCore.QRect(20, 1060, 221, 20))
466+
font = QtGui.QFont()
467+
font.setFamily("Microsoft YaHei UI")
468+
font.setPointSize(16)
469+
font.setUnderline(False)
470+
self.Label_OpacitySetting.setFont(font)
471+
self.Label_OpacitySetting.setObjectName("Label_OpacitySetting")
472+
self.Label_XunFei_2 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
473+
self.Label_XunFei_2.setGeometry(QtCore.QRect(30, 1090, 111, 20))
474+
font = QtGui.QFont()
475+
font.setFamily("Microsoft YaHei UI")
476+
font.setPointSize(11)
477+
self.Label_XunFei_2.setFont(font)
478+
self.Label_XunFei_2.setObjectName("Label_XunFei_2")
479+
self.spinBox_Opacity = QtWidgets.QSpinBox(parent=self.scrollAreaWidgetContents)
480+
self.spinBox_Opacity.setGeometry(QtCore.QRect(150, 1090, 42, 22))
481+
self.spinBox_Opacity.setMinimum(20)
482+
self.spinBox_Opacity.setMaximum(100)
483+
self.spinBox_Opacity.setProperty("value", 100)
484+
self.spinBox_Opacity.setObjectName("spinBox_Opacity")
446485
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
447486

448487
self.retranslateUi(Config)
@@ -457,6 +496,9 @@ def setupUi(self, Config):
457496
self.PushButton_GetFreeOCRKEY.clicked.connect(Config.showGetSecretWidget) # type: ignore
458497
self.ListWidget_SelectableSource.doubleClicked['QModelIndex'].connect(Config.addTranslator) # type: ignore
459498
self.ListWidget_SelectedSource.doubleClicked['QModelIndex'].connect(Config.removeTranslator) # type: ignore
499+
self.horizontalSlider_Opacity.sliderMoved['int'].connect(Config.changeSpinBoxOpacity) # type: ignore
500+
self.spinBox_Opacity.valueChanged['int'].connect(Config.changeHorizontalSliderOpacity) # type: ignore
501+
self.horizontalSlider_Opacity.valueChanged['int'].connect(Config.changeSpinBoxOpacity) # type: ignore
460502
QtCore.QMetaObject.connectSlotsByName(Config)
461503

462504
def retranslateUi(self, Config):
@@ -504,10 +546,12 @@ def retranslateUi(self, Config):
504546
self.CheckBox_CaiYun.setText(_translate("Config", "白嫖彩云小译"))
505547
self.CheckBox_Baidu.setText(_translate("Config", "白嫖百度翻译"))
506548
self.CheckBox_Tencent.setText(_translate("Config", "白嫖腾讯翻译君"))
507-
self.Label_TranslatorAPISecretSetting_2.setText(_translate("Config", "文字识别API密钥设置:"))
549+
self.Label_OCRAPISetting.setText(_translate("Config", "文字识别API密钥设置:"))
508550
self.LineEdit_OCRAPPID.setPlaceholderText(_translate("Config", "请输入科大讯飞OCR AppId"))
509551
self.LineEdit_OCRSECRET.setPlaceholderText(_translate("Config", "请输入科大讯飞OCR Secret"))
510552
self.LineEdit_OCRKEY.setPlaceholderText(_translate("Config", "请输入科大讯飞OCR Key"))
511-
self.Label_Tencent_2.setText(_translate("Config", "科大讯飞OCRAPI"))
553+
self.Label_XunFei.setText(_translate("Config", "科大讯飞OCRAPI"))
512554
self.PushButton_GetFreeOCRKEY.setText(_translate("Config", "获取白嫖密钥"))
555+
self.Label_OpacitySetting.setText(_translate("Config", "窗口不透明度设置:"))
556+
self.Label_XunFei_2.setText(_translate("Config", "当前不透明度为:"))
513557
from customerDefineQtClass import oneKeyQKeySequenceEdit

0 commit comments

Comments
 (0)