我正在使用PyQt5和Python 3.6。我想将<link href="https://openlayers.org/en/v4.6.4/css/ol.css" rel="stylesheet"/>
<script src="https://openlayers.org/en/v4.6.4/build/ol-debug.js"></script>
<div id="map" class="map"></div>
<a id="export-png" class="btn" download="map.png"> </a>
(或ENTER
)密钥用于双重目的。
如果用户在组合框中输入文本然后点击RETURN
键,那么我希望将组合框中的文本附加到列表中。在所有其他情况下,我希望ENTER
键用作按钮的快捷方式。
我无法找到按下ENTER
时句柄的正确决定。这是一个代码示例。我正在寻找ENTER
函数中的决定(在脚本的底部)。
returnDecision(self)
有什么建议吗?
答案 0 :(得分:0)
解决此问题的一种方法是使用QComboBox的自定义子类并覆盖keyPressEvent方法。然后还在窗口小部件中实现keyPressEvent,并以不同的方式处理每个事件。
class CustomCombo(QtWidgets.QComboBox):
enter_pressed = QtCore.pyqtSignal()
def __init__(self, parent=None):
super().__init__(parent)
def keyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_Return:
self.enter_pressed.emit()
else:
QtWidgets.QComboBox.keyPressEvent(self, event)
# if the key is not return, handle normally
class Example(QWidget):
def __init__(self):
# Code here
self.combo_box = CustomCombo(self)
self.combo_box.enter_pressed.connect(self.cboxAction)
def keyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_Return:
self.btnAction()