如何解决如何阻止空格键触发PyQt5中的焦点QPushButton?
当按下 space 键时,我希望按钮不触发;如何实现该功能?我找到了类似的post,但是它是用c++编写的,我如何将其翻译为python,但可以根据自己的需要修改其行为?
解决方法
如果您想要任何触发按钮的键盘事件,则只需实现一个事件过滤器:
import sys
from PyQt5 import QtCore,QtWidgets
class Listener(QtCore.QObject):
def __init__(self,button):
super().__init__(button)
self._button = button
self.button.installEventFilter(self)
@property
def button(self):
return self._button
def eventFilter(self,obj,event):
if obj is self.button and event.type() == QtCore.QEvent.KeyPress:
return True
return super().eventFilter(obj,event)
App = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QWidget()
lay = QtWidgets.QVBoxLayout(w)
btn = QtWidgets.QPushButton()
lay.addWidget(btn)
w.show()
btn.clicked.connect(print)
listener = Listener(btn)
sys.exit(App.exec())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。