首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTableWidget,停止编辑QTableWidgetItem

QTableWidget,停止编辑QTableWidgetItem
EN

Stack Overflow用户
提问于 2018-01-04 04:20:10
回答 1查看 682关注 0票数 0

我有一个QTableWidget,里面有很多东西。我想让它在编辑单元格时按下Return键(与Qt.Key_Return相同)时,它会选择并编辑下一个单元格。但是,如果我已经在编辑QTableWidgetItem,那么如果我调用nextrow函数,它将不会执行任何操作。当未编辑任何内容时,它确实可以工作,并且它将编辑选定的行。

代码语言:javascript
复制
self.table = QTablewidget()
... # Populate widget with QTableWidgetItems

def nextrow(self, row)
    column = 1
    self.table.editItem(self.table.item(row, column))

我看不到真正禁用编辑模式的方法,它完全忽略了从设置文本到某些内容,禁用编辑权限的所有内容,因为我已经在编辑它了。据我所知,我也找不到任何方法来做到这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-04 08:24:16

您需要从QTableWidget捕获按键事件。要做到这一点,您需要继承QTableWidget的子类,并从内部实现change row函数。

代码语言:javascript
复制
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())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48084565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档