Этого можно добиться с помощью делегата элемента:
class NoFocusDelegate(QStyledItemDelegate):
def paint(self, painter, option, index):
option.state = QStyle.State_None
super(NoFocusDelegate, self).paint(painter, option, index)
self.listWidget.setItemDelegateForRow(0, NoFocusDelegate(self))
Однако лучшим решением будет избавиться от фиктивного элемента и просто очистить фокус, установив недопустимый текущий индекс:
self.listWidget.setCurrentIndex(QModelIndex())
Теперь ни один элемент не будет выделен, и currentItem()
вернет None
, а currentRow()
вернет -1
, пока пользователь явно не выберет элемент.