如何使QPushButton不被Enter键盘键触发
How to make QPushButton not to be triggered by Enter keyboard key
下面的代码创建了一个带有 5 个按钮的对话框 window。每个按钮都连接到 onClick
功能。如果我按下 'Enter' 键盘键,将触发其中一个按钮并执行 onClick
功能。
如何更改按钮属性,使按钮仅在单击时调用 onClick
功能而不响应 Enter
键盘键?
from PyQt4 import QtGui
def onClick():
print 'button clicked'
dialog = QtGui.QDialog()
dialog.setLayout(QtGui.QVBoxLayout())
for i in range(5):
btn = QtGui.QPushButton('Button %03d'%i)
btn.clicked.connect(onClick)
dialog.layout().addWidget(btn)
dialog.show()
将 QPushButtons
的 default
和 autoDefault
属性 设置为 False。例如
btn = QtGui.QPushButton('Button %03d'%i, default=False, autoDefault=False)
您观察到的是 QDialog 对触发默认 'dialog action' 的回车键的特殊处理(这是使用 QDialog 时的常见问题)。
下面的代码创建了一个带有 5 个按钮的对话框 window。每个按钮都连接到 onClick
功能。如果我按下 'Enter' 键盘键,将触发其中一个按钮并执行 onClick
功能。
如何更改按钮属性,使按钮仅在单击时调用 onClick
功能而不响应 Enter
键盘键?
from PyQt4 import QtGui
def onClick():
print 'button clicked'
dialog = QtGui.QDialog()
dialog.setLayout(QtGui.QVBoxLayout())
for i in range(5):
btn = QtGui.QPushButton('Button %03d'%i)
btn.clicked.connect(onClick)
dialog.layout().addWidget(btn)
dialog.show()
将 QPushButtons
的 default
和 autoDefault
属性 设置为 False。例如
btn = QtGui.QPushButton('Button %03d'%i, default=False, autoDefault=False)
您观察到的是 QDialog 对触发默认 'dialog action' 的回车键的特殊处理(这是使用 QDialog 时的常见问题)。