我有一个QTableview和QItem委托设置它,编辑器是我重新实现的QCombobox,因为我想修改它的keyPressEvent。因为如果我在qcombobox编辑器打开时按下键,它会选择编辑器中的下一行,但是我想要选择tableView中的下一行,不要让comboBox中的行改变。
所以这是我的QComboBox的事件代码:
def keyPressEvent(self, event):
key = event.key()
if key == Qt.Key_Down:
self.close()
else:
QComboBox.keyPressEvent(self, event)
然而,当我按下键时,正在选择comboBox右侧tableView中的项目,为什么关闭编辑器会导致任何选择更改?我怎么能控制它?
答案 0 :(得分:0)
所以我不知道它为什么会这样,但我修改了我的代码以控制其行为,如下所示:
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。