pyqt - 为什么我不能在 pyqt5 中使用键盘监听器?
问题描述
当我尝试使用带有 pyqt5 的键侦听器来检测是否单击了某个键时。我的应用程序停止工作...
侦听器运行良好,但是当我将 pyqt 与侦听器一起使用时,应用程序崩溃
我想检测这个按钮是否被按下']'
我的代码:
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5 import QtCore
from PyQt5.uic import loadUiType
import sys
from pynput import keyboard
class Main(QMainWindow):
def __init__(self, parent=None):
super(Main, self).__init__(parent)
self.setGeometry(500, 500, 500, 300)
self.btn = QPushButton('start', self)
self.btn.move(100, 100)
self.btn.clicked.connect(lambda : self.start())
def on_press(self, key):
try:
k = key.char
except:
k = key.name
if k == ']':
print('dad')
def start(self):
self.listener = keyboard.Listener(on_press=self.on_press)
self.listener.start()
self.listener.join()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Main()
ex.show()
sys.exit(app.exec_())
解决方案
推荐阅读
- discord.py - 自我机器人 discord.py 的自定义状态
- amazon-web-services - AWS Kubernetes 中缺少 NVMe SSD
- javascript - VsCode 未在 Ubuntu 上运行
- django - 在使用 Django 租户时,让用户浏览器重新缓存静态文件的最佳方法是什么?
- java - 方法 areEqualByThreeDecimalPlace(double, double) 对于 DecimalComparator 类型未定义
- matlab - 为什么我的不同迭代给出相同的结果?
- php - 需要在 select col json 中以 obj 的形式返回,但 JSON_UNQUOTE 不起作用
- go - golang中结构定义中的意思是chan词是什么
- google-chrome - 获取频繁的 chrome 驱动程序错误:驱动程序配置/启动失败:chrome 服务器在空手道独立中从 http://localhost:(port) 返回了空列表
- gnuradio - Gnuradio - 无法解码 cc_decoder