From f48d7c9c8a052dcf6f07dae574a0d51ee0425a66 Mon Sep 17 00:00:00 2001 From: Allan Date: Fri, 29 Oct 2021 19:29:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9BUG=201=E3=80=81OCR=E5=8F=96=E8=AF=8D?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8=EF=BC=9B=202=E3=80=81?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E4=B8=8A=E7=9A=84=E4=B8=80=E4=BA=9B=E9=94=99?= =?UTF-8?q?=E8=AF=AF=EF=BC=9B=203=E3=80=81=E8=A7=A3=E5=86=B3=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=BE=93=E5=85=A5=E4=B8=AD=E6=96=87=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9B=204=E3=80=81=E4=BC=98=E5=8C=96=E5=8F=96?= =?UTF-8?q?=E8=AF=8D=E7=95=8C=E9=9D=A2=E3=80=82=205=E3=80=81=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E7=B3=BB=E7=BB=9F=E9=80=9A=E7=9F=A5=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.sh | 2 ++ deb/DEBIAN/control | 2 +- readme.assets/clipboard.png | Bin 80488 -> 47566 bytes requirements.txt | 4 ++- src/UI/BaseWidget.py | 24 +++++++++++++ src/UI/ocr_mask.py | 31 +++------------- src/UI/result.py | 18 +++++++--- src/UI/setting.py | 69 +++++++++++++++++++++++++++++------- src/UI/tip_window.py | 64 +++++++++++++++++++++------------ src/main.py | 4 --- src/main_window.py | 17 +++++++++ src/res/close.png | Bin 0 -> 3322 bytes src/tray_icon.py | 6 +--- src/util.py | 8 +++-- 14 files changed, 172 insertions(+), 77 deletions(-) create mode 100644 src/UI/BaseWidget.py create mode 100644 src/res/close.png diff --git a/build.sh b/build.sh index 2541a25..2c18d58 100644 --- a/build.sh +++ b/build.sh @@ -8,6 +8,8 @@ tar -czf my_dict_linux_x64_${version}.tar.gz 我的词典 LICENSE cd .. cp LICENSE deb/opt/my_dict +sed -i "s/^Version:.*/Version:${version}/g" deb/DEBIAN/control dpkg -b deb dist/mydict_linux_x64_${version}.deb rm deb/opt/my_dict/我的词典 rm deb/opt/my_dict/LICENSE +sed -i "s/^Version:.*/Version:0.0.0/g" deb/DEBIAN/control diff --git a/deb/DEBIAN/control b/deb/DEBIAN/control index 0a9b101..770d83a 100644 --- a/deb/DEBIAN/control +++ b/deb/DEBIAN/control @@ -1,5 +1,5 @@ Package:mydict -Version:0.2.2 +Version:0.0.0 Section:free Priority:optional Architecture:amd64 diff --git a/readme.assets/clipboard.png b/readme.assets/clipboard.png index a8563c937b42f40ba19609162ca79e70e8da97b7..b198aec292abbacb1c80bc1e778c3d1145df1dce 100644 GIT binary patch literal 47566 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%0DofTu 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

Tsm7 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 bhybD{dABCH8UDV1K=6l(>Iz@v&4d02K{*|w diff --git a/requirements.txt b/requirements.txt index 628f5f9..8747356 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,6 @@ -PyQt5==5.14.0 +pyqt5-tools==5.15.1.3.2 +PyQt5==5.15.1 +PyQt5-sip==12.8.1 requests==2.26.0 QDarkStyle==3.0.2 pystardict==0.8 diff --git a/src/UI/BaseWidget.py b/src/UI/BaseWidget.py new file mode 100644 index 0000000..0cec244 --- /dev/null +++ b/src/UI/BaseWidget.py @@ -0,0 +1,24 @@ +from PyQt5.QtCore import Qt +from PyQt5.QtGui import QPainter, QColor +from PyQt5.QtWidgets import QWidget + + +class BaseWidget(QWidget): + """圆角边框类""" + def __init__(self, parent=None): + super().__init__(parent) + # 设置 窗口无边框和背景透明 *必须 + self.setAttribute(Qt.WA_TranslucentBackground) + self.color_background = QColor(128, 128, 128, 0.7 * 255) + + def paintEvent(self, event): + pat = QPainter(self) + pat.setRenderHint(pat.Antialiasing) + pat.setPen(self.color_background) + pat.setBrush(self.color_background) + rect = self.rect() + rect.setLeft(5) + rect.setTop(5) + rect.setWidth(rect.width() - 5) + rect.setHeight(rect.height() - 5) + pat.drawRoundedRect(rect, 4, 4) diff --git a/src/UI/ocr_mask.py b/src/UI/ocr_mask.py index 968a558..5ada281 100644 --- a/src/UI/ocr_mask.py +++ b/src/UI/ocr_mask.py @@ -1,33 +1,12 @@ -from PyQt5.QtCore import Qt, QRect, QPoint, QRectF, QSize -from PyQt5.QtGui import QScreen, QPainter, QPixmap, QColor, QImage, QIcon, QBrush, QPainterPath -from PyQt5.QtWidgets import QDialog, QPushButton, QWidget +from PyQt5.QtCore import Qt, QRect, QPoint, QSize +from PyQt5.QtGui import QScreen, QPainter, QPixmap, QColor, QImage +from PyQt5.QtWidgets import QDialog, QPushButton +from src.UI.BaseWidget import BaseWidget from src.UI.util import create_line from src.util import load_icon -class UiTools(QWidget): - """圆角边框类""" - def __init__(self, parent=None): - super(UiTools, self).__init__(parent) - self.border_width = 8 - # 设置 窗口无边框和背景透明 *必须 - self.setAttribute(Qt.WA_TranslucentBackground) - - def paintEvent(self, event): - pat = QPainter(self) - pat.setRenderHint(pat.Antialiasing) - color = QColor(128, 128, 128, 150) - pat.setPen(color) - pat.setBrush(color) - rect = self.rect() - rect.setLeft(5) - rect.setTop(5) - rect.setWidth(rect.width() - 5) - rect.setHeight(rect.height() - 5) - pat.drawRoundedRect(rect, 4, 4) - - class UiOcrMask(QDialog): def __init__(self, win_id, screen: QScreen): super().__init__() @@ -52,7 +31,7 @@ def __init__(self, win_id, screen: QScreen): height=screen_rect.height(), ) self.img: QImage = shot.toImage() - self.tools = UiTools(self) + self.tools = BaseWidget(self) self.tools.setHidden(True) self.tools.setFixedHeight(64) diff --git a/src/UI/result.py b/src/UI/result.py index 6912893..5d300a0 100644 --- a/src/UI/result.py +++ b/src/UI/result.py @@ -1,6 +1,6 @@ import json -from PyQt5.QtCore import QUrl +from PyQt5.QtCore import QUrl, Qt from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent from PyQt5.QtWidgets import QWidget, QLabel, QTextEdit, QPushButton, QHBoxLayout, QVBoxLayout, QMessageBox @@ -18,7 +18,7 @@ class ResultWindow(QWidget): '}\n' \ '' - def __init__(self, parent): + def __init__(self, parent, translucent=False): super().__init__(parent) self.edit_res = QTextEdit() @@ -30,14 +30,14 @@ def __init__(self, parent): self.label_uksm.hide() self.media_player_us = QMediaPlayer() - self.btn_us = QPushButton("美音") + self.btn_us = QPushButton(" 美音 ") self.btn_us.setParent(self) self.btn_us.setIcon(load_icon("voice")) self.btn_us.hide() self.btn_us.setFlat(True) self.btn_us.clicked.connect(lambda: self.on_play(self.media_player_us)) self.media_player_uk = QMediaPlayer() - self.btn_uk = QPushButton("英音") + self.btn_uk = QPushButton(" 英音 ") self.btn_uk.setParent(self) self.btn_uk.setIcon(load_icon("voice")) self.btn_uk.hide() @@ -55,6 +55,16 @@ def __init__(self, parent): vbox = QVBoxLayout() vbox.addItem(hbox) vbox.addWidget(self.edit_res) + if translucent: + self.label_uksm.setAttribute(Qt.WA_TranslucentBackground) + self.label_ussm.setAttribute(Qt.WA_TranslucentBackground) + self.btn_uk.setAttribute(Qt.WA_TranslucentBackground) + self.edit_res.setAttribute(Qt.WA_TranslucentBackground) + for i in range(0, hbox.count()): + w = hbox.itemAt(i) + if isinstance(w, QWidget): + print(i, "Qt.WA_TranslucentBackground") + w.setAttribute(Qt.WA_TranslucentBackground) self.setLayout(vbox) @staticmethod diff --git a/src/UI/setting.py b/src/UI/setting.py index 50bb9f3..c89333c 100644 --- a/src/UI/setting.py +++ b/src/UI/setting.py @@ -5,9 +5,10 @@ import threading import pystardict -from PyQt5.QtCore import QSize, pyqtSignal +from PyQt5.QtCore import QSize, pyqtSignal, Qt +from PyQt5.QtGui import QKeyEvent from PyQt5.QtWidgets import QWidget, QCheckBox, QPushButton, QLineEdit, QFileDialog, \ - QListWidget, QListWidgetItem, QMessageBox, QDialog, QTextEdit + QListWidget, QListWidgetItem, QMessageBox, QDialog, QTextEdit, QLabel from src.UI.download_dict import DownloadDialog from src.UI.util import create_grid, create_line, create_multi_line @@ -16,6 +17,42 @@ from src.util import run_app +class GetHotkey(QDialog): + hotkey = [] + + def __init__(self, parent, hotkey): + super().__init__(parent) + self.label = QLabel(hotkey) + self.btn = QPushButton("OK") + self.btn.setFixedWidth(80) + self.btn.clicked.connect(self.accept) + layout = create_multi_line([ + create_line([1, self.label, 1]), + create_line([1, self.btn, 1]) + ]) + self.setWindowTitle("更改热键") + self.setLayout(layout) + + def keyPressEvent(self, event: QKeyEvent): + m = event.modifiers() + hotkey = [] + if m & Qt.ShiftModifier: + hotkey.append("shift") + if m & Qt.ControlModifier: + hotkey.append("control") + if m & Qt.AltModifier: + hotkey.append("alt") + k = event.key() + if 48 <= k <= 57 or 65 <= k <= 90 or 97 <= k <= 122: + hotkey.append(chr(k).lower()) + + if k == Qt.Key_Escape: + hotkey = [] + + self.label.setText(' - '.join(hotkey).upper() if len(hotkey) > 0 else '禁用') + self.hotkey = hotkey + + class InstallOcrWindow(QDialog): signal_log = pyqtSignal(str) signal_finish = pyqtSignal(int) @@ -73,21 +110,23 @@ def __init__(self, parent, star_dict: StartDict): self.checkbox_use_dark_skin.setChecked(setting.use_dark_skin) self.checkbox_use_dark_skin.clicked.connect(self.on_save) - self.checkbox_support_clipboard = QCheckBox("剪贴板取词(复制两次触发取词)") + self.checkbox_support_clipboard = QCheckBox("剪贴板取词(复制3次触发取词)") self.checkbox_support_clipboard.setToolTip("复制3次触发取词") self.checkbox_support_clipboard.clicked.connect(self.on_save) self.checkbox_support_ocr = QCheckBox("OCR取词") self.checkbox_support_ocr.clicked.connect(self.on_save) - self.edit_ocr_hotkey = QLineEdit() - self.edit_ocr_hotkey.setReadOnly(True) - self.edit_ocr_hotkey.setPlaceholderText("OCR取词热键") - self.edit_ocr_hotkey.textChanged.connect(self.on_save) + self.edit_ocr_hotkey = QPushButton( + " - ".join(setting.ocr_hotkey).upper() if len(setting.ocr_hotkey) > 0 else '禁用' + ) + self.edit_ocr_hotkey.clicked.connect(self.on_change_hotkey) + self.edit_ocr_hotkey.setFlat(True) self.edit_ocr_server = QLineEdit() self.edit_ocr_server.setReadOnly(True) - self.edit_ocr_server.setPlaceholderText("OCR取词服务器") + self.edit_ocr_server.setPlaceholderText("取词服务器") + self.edit_ocr_server.setText(setting.ocr_server) self.edit_ocr_server.textChanged.connect(self.on_save) self.button_ocr_server = QPushButton("安装") @@ -118,8 +157,6 @@ def __init__(self, parent, star_dict: StartDict): self.checkbox_support_clipboard.setChecked(setting.support_clipboard) self.checkbox_support_ocr.setChecked(setting.support_ocr) - self.edit_ocr_hotkey.setText("-".join(setting.ocr_hotkey)) - self.edit_ocr_server.setText(setting.ocr_server) self.checkbox_show_main_window_when_startup.setChecked(setting.show_main_window_when_startup) self.checkbox_auto_startup.setChecked(self.is_auto_startup()) @@ -134,8 +171,8 @@ def __init__(self, parent, star_dict: StartDict): [self.checkbox_use_dark_skin], [self.checkbox_support_clipboard], [self.checkbox_support_ocr], - [" OCR取词热键:", create_line([self.edit_ocr_hotkey])], - [" OCR取词服务器:", create_line([self.edit_ocr_server, self.button_ocr_server])], + [" 取词热键:", create_line([self.edit_ocr_hotkey])], + [" 取词服务器:", create_line([self.edit_ocr_server, self.button_ocr_server])], [self.checkbox_show_main_window_when_startup], [self.checkbox_auto_startup], ["词典目录:", create_line([self.edit_dict_folder, self.btn_select_dict_folder, self.btn_open_dict_folder])], @@ -245,3 +282,11 @@ def on_download_dict(self): def on_install_ocr_server(self): dd = InstallOcrWindow(self) dd.exec_() + + def on_change_hotkey(self): + dd = GetHotkey(self, self.edit_ocr_hotkey.text()) + ret = dd.exec_() + if ret == 1: + self.edit_ocr_hotkey.setText(' - '.join(dd.hotkey).upper() if len(dd.hotkey) > 0 else '禁用') + setting.ocr_hotkey = dd.hotkey + setting.save() diff --git a/src/UI/tip_window.py b/src/UI/tip_window.py index 85d8fbb..4483086 100644 --- a/src/UI/tip_window.py +++ b/src/UI/tip_window.py @@ -1,18 +1,21 @@ from PyQt5.QtCore import QRect, QTimer, Qt, QSize, pyqtSignal -from PyQt5.QtGui import QCursor, QFont +from PyQt5.QtGui import QCursor, QFont, QColor from PyQt5.QtMultimedia import QMediaPlayer -from PyQt5.QtWidgets import QVBoxLayout, QLabel, QApplication, QWidget +from PyQt5.QtWidgets import QVBoxLayout, QLabel, QApplication, QWidget, QPushButton from system_hotkey import SystemHotkey +from src.UI.BaseWidget import BaseWidget from src.UI.OCR import OCR from src.UI.result import ResultWindow +from src.UI.util import create_line from src.backend.stardict import StartDict from src.backend.youdao import YouDaoFanYi from src.events import events from src.setting import setting +from src.util import load_icon -class TipWindow(QWidget): +class TipWindow(BaseWidget): last_text = [] signal_hotkey = pyqtSignal() clipboard = None @@ -32,41 +35,47 @@ def __init__(self, youdao: YouDaoFanYi, star_dict: StartDict, app): self.youdao = youdao # 窗口置顶,无边框,在任务栏不显示图标 self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.BypassWindowManagerHint | Qt.FramelessWindowHint | Qt.Tool) - self.label_src = QLabel() font = QFont() font.setFamily("Mono") font.setPointSize(16) font.setWeight(75) font.setBold(True) + self.label_src = QLabel() self.label_src.setFont(font) - self.result = ResultWindow(self) + self.label_src.setAttribute(Qt.WA_TranslucentBackground) + self.btn_close = QPushButton(load_icon("close"), '') + self.btn_close.clicked.connect(self.hide) + self.color_background = QColor(128, 128, 128, 0.8 * 255) + self.result = ResultWindow(self, True) + self.result.setAttribute(Qt.WA_TranslucentBackground) vbox = QVBoxLayout() - vbox.addWidget(self.label_src) + vbox.addItem(create_line([self.label_src, 1, self.btn_close])) vbox.addWidget(self.result) self.setLayout(vbox) self.timer_hide = QTimer() self.timer_hide.timeout.connect(self.on_auto_hide) - self.hk = SystemHotkey() + self.curr_hotkey = [] + self.hotkey = SystemHotkey() self.on_setting_changed() def on_setting_changed(self): if setting.support_clipboard: if self.clipboard is None: self.clipboard = QApplication.clipboard() - self.clipboard.dataChanged.connect(lambda: self.query(self.clipboard.text())) + self.clipboard.dataChanged.connect(lambda: self.on_clipboard(self.clipboard.text())) else: if self.clipboard is None: del self.clipboard - if setting.support_ocr: - if self.ocr is None: - self.ocr = OCR(self.app) - self.hk.register(setting.ocr_hotkey, callback=lambda x: self.signal_hotkey.emit()) - else: - if self.ocr is None: - self.hk.unregister(setting.ocr_hotkey) - del self.ocr + if self.ocr: + self.hotkey.unregister(self.curr_hotkey) + del self.ocr + + if setting.support_ocr and len(setting.ocr_hotkey) > 0: + self.ocr = OCR(self.app) + self.hotkey.register(setting.ocr_hotkey, callback=lambda x: self.signal_hotkey.emit()) + self.curr_hotkey = setting.ocr_hotkey def on_hotkey(self): if self.is_in_hotkey: @@ -77,7 +86,14 @@ def on_hotkey(self): if txt == '': events.signal_pop_message.emit("OCR取词失败。") return - self.query(txt) + if not self.query(txt): + print("query failed!") + return + + def on_clipboard(self, txt): + if not self.last_three_is_same(txt): + return False + return self.query(txt) @staticmethod def on_play(media_player: QMediaPlayer): @@ -87,7 +103,7 @@ def on_play(media_player: QMediaPlayer): except Exception as ex: print("Exception", ex) - def is_last(self, txt): + def last_three_is_same(self, txt): count = len(self.last_text) if count == 0: self.last_text.append(txt) @@ -97,7 +113,8 @@ def is_last(self, txt): self.last_text.append(txt) # 之前连续复制了三次,就认为命中 - if count >= 3: + # 注意:count:是不包含当前这一次 + if count >= 2: self.last_text = [] return True return False @@ -108,9 +125,7 @@ def is_last(self, txt): def query(self, txt): if txt is None or txt == '': - return - if not self.is_last(txt): - return + return False is_word, result = self.youdao.translate(txt) # print("youdao: ", is_word, result) if is_word: @@ -133,6 +148,7 @@ def query(self, txt): succeed = True if succeed: self.show() + return succeed def on_auto_hide(self): pos = QCursor.pos() @@ -146,6 +162,10 @@ def on_auto_hide(self): self.hide() def show(self): + if setting.use_dark_skin: + self.color_background = QColor(50, 50, 50, 0.8*255) + else: + self.color_background = QColor(200, 200, 200, 0.8*255) self.move(QCursor.pos()) self.timer_hide.start(3000) super().show() diff --git a/src/main.py b/src/main.py index 7767e3c..996a46e 100644 --- a/src/main.py +++ b/src/main.py @@ -35,10 +35,6 @@ def main(): # os.environ['QT_DEBUG_PLUGINS'] = '1' QApplication.setAttribute(Qt.AA_EnableHighDpiScaling) app = QApplication(sys.argv) - if setting.use_dark_skin: - import qdarkstyle - dark_stylesheet = qdarkstyle.load_stylesheet_pyqt5() - app.setStyleSheet(dark_stylesheet) app.setApplicationName("MyDict") app.setQuitOnLastWindowClosed(False) main_window = MainWindow(app) diff --git a/src/main_window.py b/src/main_window.py index 585bb4f..cafa2a8 100644 --- a/src/main_window.py +++ b/src/main_window.py @@ -1,7 +1,10 @@ from PyQt5.QtCore import QSize, QRect +from PyQt5.QtGui import QPalette, QBrush, QColor from PyQt5.QtWidgets import QWidget, QHBoxLayout, QDesktopWidget, QTabWidget, QMainWindow +from qdarkstyle import LightPalette from src.backend.stardict import StartDict +from src.events import events from src.setting import setting from src.UI.find_text import FindText from src.UI.find_word import FindWord @@ -17,6 +20,10 @@ class MainWindow(QWidget): def __init__(self, app): super().__init__() + self.app = app + self.on_setting_changed() + events.signal_setting_changed.connect(self.on_setting_changed) + self.setGeometry(QRect(0, 0, 800, 600)) self.tray = TrayIcon(self) self.tray.show() @@ -44,6 +51,16 @@ def __init__(self, app): self.center() + def on_setting_changed(self): + import qdarkstyle + if setting.use_dark_skin: + dark_stylesheet = qdarkstyle.load_stylesheet_pyqt5() + self.app.setStyleSheet(dark_stylesheet) + else: + style = qdarkstyle.load_stylesheet(palette=LightPalette) + self.app.setStyleSheet(style) + # self.app.setStyleSheet("") + def center(self): rect = self.frameGeometry() pt = QDesktopWidget().availableGeometry().center() diff --git a/src/res/close.png b/src/res/close.png new file mode 100644 index 0000000000000000000000000000000000000000..839b238f2a6d731e862e50da056d3b3c04e6f626 GIT binary patch literal 3322 zcmeH~`#;p#AIAq%rXn-Z+8B(PPeVx2P!nOM(e&BICAU&8Ewe>zGHxNaSs6x+na`AE zSk^7K5+bQB6`IeW+^bm@)zHY2q;k!7cK?X)58uc4hjY&3@p_+gUXOFm`|*4~PKK*9 zU45g@Mg#((4j!htDMt98hFY)aZyv8HPz*{DZgeW5<~eo}flzAzX%vqOe$&5sHignL z$)+XI#<33v z60YBWxEfb|uezn`L&2W-i7r3zE)J0*Kzgy&k+|I=1beq0`ul?j%J&*59BL0D#a4L* zDS3Oy3$2XWQre5%lZ9Z*!U?7*CFF*_AYLvVL7BTN*qVx9BZEoeEdN6~p^@d<@HtiQLOjdtMUu1w^_BGEvWt~W)Y@()FH*(#$T@s%4m zg?hMzd|F@Wf7G_Y9G-X~j$zN=9nQU1dV(3a^}1y3 z;t5UWRjjW|(r(av=K}%vW%V7LJ06QWSV22AGT_H$ zT$4tZBka)a_%MLI{2XYuwXi#Tyb7yVxW`c@%0ATyq>t3a4fW=SIYFjavVi)4Wt{hx zCi{|&Q-r>ZcZ|>Yl+91-3TdD2PM~CPQ9uRG$@k`l;$3}fM0`O+!q1TW<|%UlmV8xr zSD$Hafqx!gYV&@zL+4^6p}gHycD%>4d#%Ary={>wG2s=rkU&wKU~->5%S^f2lQLiN zE*GfYpC;Rc>GkigiIO#-xmd!zSM|6!S%ecbh;?6S28#_!($5=;bIhB})Ad)eLYn=l zU*i%^Lq3Hf*I+D*5#)oUXg!t^B|1FHw*jE}vB2Hkm<2?da&cU$y|lV1`LlaP+r`yzaHsRw9o7wkDw1PgkvRIrV!`WaA^-mu+n@LZIvi)zebMjO`S zxPN;HnFmx`zB)leSn`o=TeVHddX~UI7h{ z!?~vw3l3{jyizOumwxvTyIuFor;|jt5H*hynI8dAP~jPype)?`&d5&3Y{2Ry9csv5z1YR zS@T7E4Yeu6)&oz0$%m+TRvH{alqBqUd?0{dqWZ^G4fKg%LN0i=HlmLSEH+2MCop54493j?T#(pUNb=~KZs1EK6k`tv!(b8M(_ z(P7K_ZH58qi@LTdA{OG!)z>q`Qg-!ULDT{bIhRf;%KgtEkXC#>WoMu!-Q zp>7f2Vg^$-tF{HF;o;gy4NEX_;`oIEzRz4L-){kezFL9NE?nnLR36FsK?%Ba?~~GXUo5~c zhq?L&saO>UhOaWk4g8!nGz3U*i{0Q}6+dSaw#>D&yVu4ePWRa8)T|%;db_oQEn5xI zTSuG8OO9JUwywFYPP<4&fpaAs(Oh6kZ(7kHO3E^pG1dqroZB^L@<&y-ZOO9B;8J&Fy3%8+cDuM$Y&Zh zBnc2~fc=Bo6hYj6NBj>{GUCs^`jsfL;$f+pifW@=+Qv7O$?xp%2E47p!_=3b0E-*~ zr)L8a&CJ1UbK}(%{|lDwiRU1nDcCSlO$j+^uiwuvseX?YGNb6Zg}J~>G7F_gK~R>i zJSC0GO>Bk$@7AO5%ZZZD3Kwlf#aj$KO6AquyUl>C^u`kdpy4saPD+ZZrkeq=BDWR< zLpR2a7ZqGNMBiN0iE%)$?K8WC^}Y5lSvtPKK(j<}utK4a8k?12eal)b!586IzZHS3 z+XRm5JF!l&O5Qs1J^lQ1(2c2}4ppLLCog}tXax!Crg%do)e9sc^Faf_EHiEtXdV=3 z?$@Fao07g8msi;h0^Uh;7Kz*o-9Ym*fu^+< zK-cE_!cL*gobH_Cip(8-FB+FSv)EvLMj&^T1kOauQc;flX6q&#Jx27_33AeNUr7U5 zS%mUMSL9+{`%X!(`gAx^a$4c~S3zWyf-RG-$Y6Kgxu7g7&^m_k@gJ)2@=qTu+0^&O zg?Fhn?lM?^DUj=L1-CK6!d!p(J1&1g`a>Zd7YsJ0*VuuCpzCqP&94ARj z!y1fcmD&YDwy)tzlLki$pOA#qs6YA0#wPp1pFnJ%z}+b*gpH%G_1g3R()PLmccP?4 zkL;OxhY0&S%9@<#mYC%;udSXBoNm?F4Ms=hyB3}=8#Npr7=&<3>4?=Qr@NbeCy3?Y zBcp)ynZ?JY{nsmFhE8swC2jACpRd$rF^G){v@FYde!^&TVgD_G)u<29uZBRHc#MoB59OH9BxadC4GaWPIsuZRhimvo|+c#Wx@W>`bV#(_fI7%J~If=(V135J;nYHssG{H literal 0 HcmV?d00001 diff --git a/src/tray_icon.py b/src/tray_icon.py index 7a92593..32123e6 100644 --- a/src/tray_icon.py +++ b/src/tray_icon.py @@ -57,8 +57,4 @@ def on_activated(self): self.parent().showNormal() def pop_message(self, msg): - # fixme: pyinstaller 打包后会报错,找不到符号 - # symbol _ZN22QGuiApplicationPrivate28sendApplicationPaletteChangeEbPKc - # version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference - # self.showMessage("我的词典", msg, self.ico_dict) - print(msg) + self.showMessage("我的词典", msg, self.ico_dict) diff --git a/src/util.py b/src/util.py index 109e280..1c64c3a 100644 --- a/src/util.py +++ b/src/util.py @@ -7,7 +7,7 @@ from PyQt5.QtGui import QIcon, QPixmap version = { - "curr": "0.2.3", + "curr": "0.3.4", "history": { "0.0.1": "实现基本功能:\n" " 1、查词界面\n" @@ -18,7 +18,11 @@ "2、支持OCR取词", "0.2.3": "1、设置改变实时生效\n" "2、完善关于窗口\n" - "3、解决BUG" + "3、解决BUG", + "0.3.4": "1、支持更改OCR取词热键\n" + "2、完善OCR取词服务\n" + "3、优化界面\n" + "4、解决中文输入问题" } }