【问题标题】:When closing QItemdelegate editor shifts item to right关闭 QItemdelegate 编辑器时将项目向右移动
【发布时间】:2013-06-10 16:02:56
【问题描述】:

我设置了一个 QTableview 和 QItem 委托,编辑器是一个我重新实现的 QCombobox,因为我想修改它的 keyPressEvent。因为如果我在打开 qcombobox 编辑器时按下键,它会选择编辑器中的下一行,但我希望应该选择 tableView 中的下一行,不希望组合框中的行发生变化。

这是我的 QComboBox 事件代码:

def keyPressEvent(self, event):
    key = event.key()
    if key == Qt.Key_Down:
        self.close()
    else:
        QComboBox.keyPressEvent(self, event)

但是,当我按下键时,组合框右侧的 tableView 中的项目被选中,为什么关闭编辑器会导致任何选择更改?我怎么能控制它?

【问题讨论】:

    标签: python pyqt qcombobox qitemdelegate


    【解决方案1】:

    所以我不知道它为什么会这样,但我修改了我的代码来控制它的行为,如下所示:

    def keyPressEvent(self, event):
        key = event.key()
        if self.widget_parent:
            if key == Qt.Key_Down:
                index = self.widget_parent.currentIndex()
                self.close()
                index = self.widget_parent.model().index(index.row() + 1, index.column())
                self.widget_parent.setFocus()
                self.widget_parent.setCurrentIndex(index)
                self.widget_parent.edit(index)    
        else:
            QComboBox.keyPressEvent(self, event)
    

    基本上从编辑器事件内部更改 tabelView 的 currentIndex。

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      • 2018-05-23
      相关资源
      最近更新 更多