不要在已编译的 exe 上工作关键侦听器
Posted
技术标签:
【中文标题】不要在已编译的 exe 上工作关键侦听器【英文标题】:Don't working key listener on compiled exe 【发布时间】:2020-04-06 08:12:18 【问题描述】:我用 Qt.Key 将程序隐藏在托盘中:
def keyPressEvent(self, e):
if e.key() == QtCore.Qt.Key_Escape:
self.hide()
并在使用“结束”键最小化后激活显示窗口的键盘侦听器。
class InactiveHotKey(Thread):
def __init__(self):
super().__init__()
def run(self):
from pynput.keyboard import Key, Listener
def on_release(key):
if key == Key.end:
w.showNormal()
return False
with Listener(on_release=on_release) as listener:
listener.join()
在 Pycharm 中一切正常,但在使用 pyinstaller(--onefile --icon=main_icon.ico --noconsole main.py) 'w.showNormal()' 编译程序后不起作用。
【问题讨论】:
不工作,究竟如何? 按键程序仍然隐藏。但仍在工作。 【参考方案1】:嗯,问题解决了。我忘了在主要的 python 环境中安装 pynput,它只在项目 venv 中工作。
【讨论】:
使用这样的导入可能会导致像您这样的意外问题;您可能应该像往常一样将它放在开头,但在try/except
内,并且只有在导入成功时才最终启动密钥侦听器。以上是关于不要在已编译的 exe 上工作关键侦听器的主要内容,如果未能解决你的问题,请参考以下文章