使用 Tab 键在 QTablewidget 中添加一行

时间:2021-01-11 02:27:31

标签: pyside2 qtablewidget

我正在开发一个使用 QTableWidget 的食谱应用程序来添加食谱的成分。我使用按钮添加一行以插入新成分。这很有效,但与许多现有应用程序一样,当最后一行中的最后一列具有焦点时,我想使用 Tab 键添加新行。我想我必须确定按下的 Tab 键以及焦点所在的列和行,但我不清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

最简单的方法是对表格小部件进行子类化并实现 closeEditor() 函数,该函数在委托表示编辑器将要关闭时调用,并建议关闭后要执行的下一个操作。< br/> 使用 tab 键,使用了 EditNextItem 提示,因此检查该标志就足够了,确保当前索引是否为最后一行的最后一列,然后在 之前添加一行 调用基本实现方法:

class TableWidget(QtWidgets.QTableWidget):
    def closeEditor(self, editor, hint):
        if hint == QtWidgets.QAbstractItemDelegate.EditNextItem:
            current = self.currentIndex()
            if (current.row() == self.rowCount() - 1 and 
                current.column() == self.columnCount() - 1):
                    self.insertRow(self.rowCount())
        super().closeEditor(editor, hint)