gpt4 book ai didi

python - PyQt 连接到 KeyPressEvent

转载 作者:太空狗 更新时间:2023-10-29 20:45:35 27 4
gpt4 key购买 nike

某些小部件将允许我这样做:

self.widget.clicked.connect(on_click)

但是在做:

self.widget.keyPressEvent.connect(on_key)

将失败说该对象没有属性“connect”。

我知道将小部件子类化并重新实现 keyPressEvent 方法将使我能够响应该事件。但是我如何才能 .connect() 到此后的键盘事件,或者说,从用户上下文?

最佳答案

创建一个自定义信号,并从您重新实现的事件处理程序中发出它:

class MyWidget(QtGui.QWidget):
keyPressed = QtCore.pyqtSignal(int)

def keyPressEvent(self, event):
super(MyWidget, self).keyPressEvent(event)
self.keyPressed.emit(event.key())
...

def on_key(key):
# test for a specific key
if key == QtCore.Qt.Key_Return:
print('return key pressed')
else:
print('key pressed: %i' % key)

self.widget.keyPressed.connect(on_key)

(注意:需要调用基类实现以保持现有的事件处理)。

关于python - PyQt 连接到 KeyPressEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27475940/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com