我想在qtablewidget
中捕获返回键,以便对当前标记的单元格执行某些操作。那就是:我希望用户按下"返回/输入"当任何单元格高位时键盘上的键。按下该按钮应该发出一种新方法。例如,显示一个包含该单元格内容的消息框。
如何将返回键的方法连接到方法?
由于我是python的新手,我不知道如何做到这一点,并会感激任何建议。
答案 0 :(得分:2)
你的问题有点含糊不清。什么能够抓住返回键'意思? QTableWidget
有几种返回信息的方法。
如果您想获取当前单元格的文本,您可以这样做:
my_table.currentItem().text()
<强>更新强>
在下面的评论中,您指定希望用户能够按Enter
或Return
,然后才能处理当前项目信息。
为此,您需要创建QTableWidget
的子类并覆盖其keyPressEvent
方法。一些灵感来自here:
class MyTableWidget(QTableWidget):
def __init__(self, parent=None):
super(MyTableWidget, self).__init__(parent)
def keyPressEvent(self, event):
key = event.key()
if key == Qt.Key_Return or key == Qt.Key_Enter:
# Process current item here
else:
super(MyTableWidget, self).keyPressEvent(event)
答案 1 :(得分:0)
class yourClass(QWidget):
def __init__(self, parent, **kwargs):
super().__init__(parent, **kwargs)
self.mLastKeyState = 0
# construct the table
self.mPlTable = QTableWidget()
self.mPlTable.keyPressEvent = self.tableOnKeyPressEvent # or keyReleaseEvent
def tableOnKeyPressEvent(self, event):
if event.key() == Qt.Key_Return or event.key() == Qt.Key_Enter
# do what needs to be done here
# you can return here if you do not want to pass on the return to the table
# pass on the keyPressEvent to the table
QTableWidget.keyPressEvent(self.mPlTable, event)