Skip to content

Commit

Permalink
[+] 新增可变透明度
Browse files Browse the repository at this point in the history
  • Loading branch information
CberYellowstone committed Jul 5, 2023
1 parent d731720 commit e2e7193
Show file tree
Hide file tree
Showing 4 changed files with 266 additions and 32 deletions.
3 changes: 2 additions & 1 deletion Config.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ def initConfig() -> None:
'YOUDAO_FREE_RIDER': False,
'CAIYUN_FREE_RIDER': False,
'BAIDU_FREE_RIDER': False,
'TENCENT_FREE_RIDER': False}
'TENCENT_FREE_RIDER': False,
'OPACITY': 95}
writeConfig(emptyData)

if(not os.path.exists(configPath)):
Expand Down
35 changes: 30 additions & 5 deletions GUI.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,17 +125,26 @@ def __init__(self, parent) -> None:
def closeEvent(self, event):
self.parent.Status = True
self.parent.setEnabled(True)
if ((data := readConfig()) != self.getConfig()):
reply = QtWidgets.QMessageBox.warning (self, '设置尚未保存',
"是否保存再关闭窗口?", QtWidgets.QMessageBox.StandardButton.Save |
QtWidgets.QMessageBox.StandardButton.Discard, QtWidgets.QMessageBox.StandardButton.Discard)
if reply == QtWidgets.QMessageBox.StandardButton.Save:
self.saveConfig()
else:
self.parent.changeOpacity(data['OPACITY'])

def setupUi(self, Config):
super().setupUi(Config)
Config.setWindowOpacity(0.9)
Config.setWindowOpacity(1)
Config.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)

def replaceWithCurrentConfig(self):
self.ListWidget_SelectableSource.clear()
self.ListWidget_SelectedSource.clear()
self.Label_ShortcutKeyText.setText(self.parent.Hotkey_OCR)
self.Label_ShortcutKeyText.setText(self.Hotkey_OCR)
configDict = readConfig()
self.spinBox_Opacity.setValue(configDict['OPACITY'])
for each in self.LineEditMapping:
self.LineEditMapping[each].setText(configDict[each])
for each in self.FreeRiderMapping:
Expand Down Expand Up @@ -200,19 +209,32 @@ def cancelHotKey(self):
def showGetSecretWidget(self):
self.getSecretWidget.show()

def saveConfig(self):
def getConfig(self) -> dict|None:
if(not self.getCurrentSelectedTranslator()):
QtWidgets.QMessageBox.critical(self,"配置有误","至少选择一个翻译源!")
return
return None
data = {each: self.LineEditMapping[each].text() for each in self.LineEditMapping}
data.update({each: self.FreeRiderMapping[each].isChecked() for each in self.FreeRiderMapping}) # type: ignore
data['SELECTED_TRANSLATORS'] = self.getCurrentSelectedTranslator() # type: ignore
data['Hotkey_OCR'] = self.Hotkey_OCR
data['OPACITY'] = self.horizontalSlider_Opacity.value()
return data

def saveConfig(self):
if (data := self.getConfig()) is None:
return
writeConfig(data)
self.parent.changeHotkey(self.Hotkey_OCR)
self.parent.updateTranslatorList(self.getCurrentSelectedTranslator())
reloadOCRConfig(); reloadTranslatorConfig()
self.close()

def changeHorizontalSliderOpacity(self, value):
self.horizontalSlider_Opacity.setValue(value)
self.parent.changeOpacity(value)

def changeSpinBoxOpacity(self, _value):
self.spinBox_Opacity.setValue(self.horizontalSlider_Opacity.value())


class dictWindow_class(QtWidgets.QMainWindow, Ui_dict_Window):
Expand Down Expand Up @@ -300,11 +322,11 @@ class TransAssistant_class(QtWidgets.QMainWindow, Ui_OCR_Window):
def setupUi(self, Config):
super(TransAssistant_class, self).setupUi(Config)
Config.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
Config.setWindowOpacity(0.8)
Config.OCRButton.setEnabled(self.AreaInit)
Config.OCRButtonPlus.setEnabled(self.AreaInit)
DesktopSize = self.screen().availableSize()
Config.move((DesktopSize.width() * 0.54).__int__(), (DesktopSize.height() * 0.41).__int__())
self.changeOpacity(self.ConfigDict['OPACITY'])
# Config.setAttribute(QtCore.Qt.WA_TranslucentBackground,True)

def __init__(self):
Expand Down Expand Up @@ -490,6 +512,9 @@ def showDictWindow(self):
self.selectionTextChange.emit(self.selectionText)
self.dictWindow.inputLineEdit.editingFinished.emit()
self.dictWindow.show()

def changeOpacity(self, value):
self.setWindowOpacity(value/100)

def runGUI():
GUI_APP = QtWidgets.QApplication(sys.argv)
Expand Down
66 changes: 55 additions & 11 deletions config_style.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def setupUi(self, Config):
self.scrollArea.setWidgetResizable(False)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, -551, 450, 1050))
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, -651, 450, 1150))
self.scrollAreaWidgetContents.setMinimumSize(QtCore.QSize(450, 600))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.Label_MasterTitle = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
Expand Down Expand Up @@ -395,14 +395,14 @@ def setupUi(self, Config):
self.Line_4.setLineWidth(2)
self.Line_4.setFrameShape(QtWidgets.QFrame.Shape.HLine)
self.Line_4.setObjectName("Line_4")
self.Label_TranslatorAPISecretSetting_2 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
self.Label_TranslatorAPISecretSetting_2.setGeometry(QtCore.QRect(20, 890, 221, 20))
self.Label_OCRAPISetting = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
self.Label_OCRAPISetting.setGeometry(QtCore.QRect(20, 890, 221, 20))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei UI")
font.setPointSize(16)
font.setUnderline(False)
self.Label_TranslatorAPISecretSetting_2.setFont(font)
self.Label_TranslatorAPISecretSetting_2.setObjectName("Label_TranslatorAPISecretSetting_2")
self.Label_OCRAPISetting.setFont(font)
self.Label_OCRAPISetting.setObjectName("Label_OCRAPISetting")
self.LineEdit_OCRAPPID = QtWidgets.QLineEdit(parent=self.scrollAreaWidgetContents)
self.LineEdit_OCRAPPID.setGeometry(QtCore.QRect(30, 940, 411, 31))
font = QtGui.QFont()
Expand All @@ -428,13 +428,13 @@ def setupUi(self, Config):
self.LineEdit_OCRKEY.setFont(font)
self.LineEdit_OCRKEY.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus)
self.LineEdit_OCRKEY.setObjectName("LineEdit_OCRKEY")
self.Label_Tencent_2 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
self.Label_Tencent_2.setGeometry(QtCore.QRect(30, 920, 131, 20))
self.Label_XunFei = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
self.Label_XunFei.setGeometry(QtCore.QRect(30, 920, 131, 20))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei UI")
font.setPointSize(11)
self.Label_Tencent_2.setFont(font)
self.Label_Tencent_2.setObjectName("Label_Tencent_2")
self.Label_XunFei.setFont(font)
self.Label_XunFei.setObjectName("Label_XunFei")
self.PushButton_GetFreeOCRKEY = QtWidgets.QPushButton(parent=self.scrollAreaWidgetContents)
self.PushButton_GetFreeOCRKEY.setGeometry(QtCore.QRect(340, 900, 101, 31))
font = QtGui.QFont()
Expand All @@ -443,6 +443,45 @@ def setupUi(self, Config):
self.PushButton_GetFreeOCRKEY.setFont(font)
self.PushButton_GetFreeOCRKEY.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus)
self.PushButton_GetFreeOCRKEY.setObjectName("PushButton_GetFreeOCRKEY")
self.horizontalSlider_Opacity = QtWidgets.QSlider(parent=self.scrollAreaWidgetContents)
self.horizontalSlider_Opacity.setGeometry(QtCore.QRect(200, 1090, 241, 22))
self.horizontalSlider_Opacity.setMouseTracking(False)
self.horizontalSlider_Opacity.setTabletTracking(False)
self.horizontalSlider_Opacity.setFocusPolicy(QtCore.Qt.FocusPolicy.WheelFocus)
self.horizontalSlider_Opacity.setMinimum(20)
self.horizontalSlider_Opacity.setMaximum(100)
self.horizontalSlider_Opacity.setProperty("value", 100)
self.horizontalSlider_Opacity.setTracking(True)
self.horizontalSlider_Opacity.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.horizontalSlider_Opacity.setTickPosition(QtWidgets.QSlider.TickPosition.NoTicks)
self.horizontalSlider_Opacity.setObjectName("horizontalSlider_Opacity")
self.Line_5 = QtWidgets.QFrame(parent=self.scrollAreaWidgetContents)
self.Line_5.setGeometry(QtCore.QRect(10, 1040, 441, 21))
self.Line_5.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
self.Line_5.setLineWidth(2)
self.Line_5.setFrameShape(QtWidgets.QFrame.Shape.HLine)
self.Line_5.setObjectName("Line_5")
self.Label_OpacitySetting = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
self.Label_OpacitySetting.setGeometry(QtCore.QRect(20, 1060, 221, 20))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei UI")
font.setPointSize(16)
font.setUnderline(False)
self.Label_OpacitySetting.setFont(font)
self.Label_OpacitySetting.setObjectName("Label_OpacitySetting")
self.Label_XunFei_2 = QtWidgets.QLabel(parent=self.scrollAreaWidgetContents)
self.Label_XunFei_2.setGeometry(QtCore.QRect(30, 1090, 111, 20))
font = QtGui.QFont()
font.setFamily("Microsoft YaHei UI")
font.setPointSize(11)
self.Label_XunFei_2.setFont(font)
self.Label_XunFei_2.setObjectName("Label_XunFei_2")
self.spinBox_Opacity = QtWidgets.QSpinBox(parent=self.scrollAreaWidgetContents)
self.spinBox_Opacity.setGeometry(QtCore.QRect(150, 1090, 42, 22))
self.spinBox_Opacity.setMinimum(20)
self.spinBox_Opacity.setMaximum(100)
self.spinBox_Opacity.setProperty("value", 100)
self.spinBox_Opacity.setObjectName("spinBox_Opacity")
self.scrollArea.setWidget(self.scrollAreaWidgetContents)

self.retranslateUi(Config)
Expand All @@ -457,6 +496,9 @@ def setupUi(self, Config):
self.PushButton_GetFreeOCRKEY.clicked.connect(Config.showGetSecretWidget) # type: ignore
self.ListWidget_SelectableSource.doubleClicked['QModelIndex'].connect(Config.addTranslator) # type: ignore
self.ListWidget_SelectedSource.doubleClicked['QModelIndex'].connect(Config.removeTranslator) # type: ignore
self.horizontalSlider_Opacity.sliderMoved['int'].connect(Config.changeSpinBoxOpacity) # type: ignore
self.spinBox_Opacity.valueChanged['int'].connect(Config.changeHorizontalSliderOpacity) # type: ignore
self.horizontalSlider_Opacity.valueChanged['int'].connect(Config.changeSpinBoxOpacity) # type: ignore
QtCore.QMetaObject.connectSlotsByName(Config)

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

0 comments on commit e2e7193

Please sign in to comment.