我在QListView的Qwidget中嵌入了一个QPushbutton: QPushbutton>;>;QWidget>;>;QListView
list_widget = QWidget()
list_widget.layout(QHBoxLayout())
btn = QPushButton()
btn.pressed.connect(clicked)
list_widget.layout().addWidget(QPushButton())
list_view.setIndexWidget(self.list_model.index(row, 0), list_widget)
def clicked():
row = list_view.selectedIndexes()
现在的问题是列表_view.selected索引()按下时不返回按下按钮的行。 这似乎只在QPushbutton直接嵌入到QListView中时起作用:QPushbutton>;>;QListView。你知道吗
有人知道如何将按钮的焦点委托给QListView吗?你知道吗
当您单击按钮时,它不会传输到QListView,因为按钮会使用它,并且不会将它传输到其他小部件,因此如果您要获取行,则必须间接获取它,一个可能的解决方案是使用它的几何图形,您必须获取发送者(在本例中是按钮),然后将其从左上方到全局位置,然后将其转换为相对于QListView的视口的本地位置,使用方法
indexAt()
使用该位置可以得到QModelIndex。你知道吗另一种更简单的方法是使用
functools.partial()
将行作为参数传递:或者使用lambda方法:
在我的例子中,我更喜欢使用partials,因为你不需要写很多逻辑,而且它是线程安全的。你知道吗
相关问题 更多 >
编程相关推荐