我有一个QTableWidget,里面有很多东西。我想让它在编辑单元格时按下Return键(与Qt.Key_Return相同)时,它会选择并编辑下一个单元格。但是,如果我已经在编辑QTableWidgetItem,那么如果我调用nextrow函数,它将不会执行任何操作。当未编辑任何内容时,它确实可以工作,并且它将编辑选定的行。
self.table = QTablewidget()
... # Populate widget with QTableWidgetItems
def nextrow(self, row)
column = 1
self.table.editItem(self.table.item(row, column))我看不到真正禁用编辑模式的方法,它完全忽略了从设置文本到某些内容,禁用编辑权限的所有内容,因为我已经在编辑它了。据我所知,我也找不到任何方法来做到这一点。
发布于 2018-01-04 08:24:16
您需要从QTableWidget捕获按键事件。要做到这一点,您需要继承QTableWidget的子类,并从内部实现change row函数。
self.table = CustomTableWidget()
... # Populate widget with QTableWidgetItems
class CustomTableWidget(QtWidgets.QTableWidget):
def __init__(self):
super().__init__()
def keyPressEvent(self, event):
key = event.key()
if key == QtCore.Qt.Key_Return:
self.select_next_row()
def select_next_row(self):
self.setCurrentCell(self.currentRow() + 1, self.currentColumn())
self.edit(self.currentIndex())https://stackoverflow.com/questions/48084565
复制相似问题