Pro*_*rkt 2 python pyqt qtableview qkeyevent pyqt5
我想Key Down捕获QTableView. 我还想确定,如果它是DEL按钮上的按键,我的QTableView创建方式如下(来自QtCreator):
self.tblview_data_sources = QtWidgets.QTableView(self.groupBox_2)
self.tblview_data_sources.setGeometry(QtCore.QRect(10, 20, 721, 121))
self.tblview_data_sources.setObjectName("tblview_data_sources")
Run Code Online (Sandbox Code Playgroud)
如果它实际上是 DEL 键按下,我想重新移动当前选择的行。
QTableView有这个方法keyPressEvent需要QKeyEvent- 我如何获得这个事件?
针对您的情况,您有以下可能的解决方案:
class TableView(QtWidgets.QTableView):
def keyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_Delete:
print("DELETE")
super(TableView, self).keyPressEvent(event)
...
def setupUi(self, SOME):
...
self.tblview_data_sources = TableView(self.groupBox_2) # change QtWidgets.QTableView to TableView
Run Code Online (Sandbox Code Playgroud)
eventFilter:使用 eventFilter,为此您必须使用 installEventFilter,但为此您的类必须从某个继承自 QObject 的类继承,如果您使用的是 Qt Designer,则该类则不是,这也涉及很多行代码,因此我将省略例子。
QShortcut:由于其简单性,我首选的解决方案是使用QShortcut:
QtWidgets.QShortcut(QtCore.Qt.Key_Delete, self.tblview_data_sources, activated=self.someSlot)
...
def someSlot(self):
print("DELETE")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2436 次 |
| 最近记录: |