在单元格中输入值并按键盘上的某个键后,Enter
终端中应出现一个条目:“按下 Enter”。
事实上,记录仅在第二次按下按钮后出现,并且不是每次,而是每隔一次。
我不知道如何在第一次点击后显示消息。
import sys
from PyQt5.Qt import *
class MyWidget(QWidget):
def __init__(self, parent):
super(QWidget, self).__init__(parent)
# Компоновка
self.tabs = QTabWidget()
self.tab1 = QWidget()
self.layout_vert_0 = QVBoxLayout()
self.layout_1 = QHBoxLayout()
self.tab1.setLayout(self.layout_vert_0)
self.layout_vert_0.addLayout(self.layout_1)
self.tabs.addTab(self.tab1, "PyQt5")
self.tableWidget = QTableWidget()
self.tableWidget.setRowCount(1)
self.tableWidget.setColumnCount(1)
self.layout_1.addWidget(self.tableWidget)
row = self.tableWidget.currentRow
column = self.tableWidget.currentColumn
self.layout = QVBoxLayout(self)
self.layout.addWidget(self.tabs)
# Реагирование на нажатие 'Enter'
def keyPressEvent(self, e):
k = e.key()
print('нажата какая-то кнопка')
if k == 16777221:
super().keyPressEvent(e)
print("!!!!! нажат Enter")
class MainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
self.widget1 = MyWidget(self)
self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)
main_layout = QVBoxLayout(self.central_widget)
main_layout.addWidget(self.widget1)
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setApplicationName("pyqt5")
window = MainWindow()
window.show()
sys.exit(app.exec())
在计算机键盘上,Enter键和 Return 键
Return
Qt 区分这两个键。