首页 > 解决方案 > 为什么我不能在 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_())

标签: pyqtpyqt5pynput

解决方案


推荐阅读