gpt4 book ai didi

python - QtCore.Qt.Key_ 似乎不起作用

转载 作者:行者123 更新时间:2023-12-01 05:53:37 35 4
gpt4 key购买 nike

这是我的 keyPressEvent

def keyPressEvent(self , e): 
key = e.key()
if key == QtCore.Qt.Key_Escape:
self.close()
elif key == QtCore.Qt.Key_A:
print 'Im here'

但是,如果我单击 A ,它不会打印。但是,如果我单击“Escape”,窗口就会关闭。我哪里出错了?

编辑:

基本上我有一个带有行编辑和按钮的窗口。我想通过单击 Enter 将按钮链接到一个函数,比如说有趣。这是我的代码

import sys
from PyQt4 import QtGui , QtCore

class Example(QtGui.QWidget):

def __init__(self):
super(Example , self).__init__()
self.window()

def window(self):
self.setWindowTitle('Trial')

self.layout = QtGui.QGridLayout()
self.text = QtGui.QLineEdit()
self.first = QtGui.QPushButton('Button')
self.layout.addWidget(self.text , 0 , 0)
self.layout.addWidget(self.first , 1 , 0)
self.setLayout(self.layout)
self.first.clicked.connect(self.fun)
self.show()

def fun(self):
//do something


def keyPressEvent(self , e):
key = e.key()
if key == QtCore.Qt.Key_Escape:
self.close()
elif key == QtCore.Qt.Key_Enter:
self.fun()

def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())



if __name__ == '__main__':
main()

稍后我会添加更多键。但除了 Escape 之外,其他都不起作用/

最佳答案

您正在寻找的方法称为 keyPressEvent ,而不是KeyPressEvent

<小时/>

您的 QLineEdit 似乎正在窃取您的 KeyPress 事件。如果您只想处理行编辑中的 Enter 键,则可以将 returnPressed 信号连接到 self.fun:

self.text.returnPressed.connect(self.fun)  # in PySide

否则,你将不得不乱搞 event filters 。稍后我会尝试发布一些代码。

<小时/>

您的最终编辑使其更加清晰。您可以安全地删除 keyPressEvent 并只需使用:

self.text.returnPressed.connect(self.fun)
self.button.clicked.connect(self.fun)

这真是一个困惑的答案:)

关于python - QtCore.Qt.Key_ 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13399598/

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