微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Tab 键在 QTablewidget 中添加一行

如何解决使用 Tab 键在 QTablewidget 中添加一行

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

解决方法

最简单的方法是对表格小部件进行子类化并实现 closeEditor() 函数,该函数在委托表示编辑器将要关闭时调用,并建议关闭后要执行的下一个操作。 使用 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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。