Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt4: выделить первую строку QListView [RSS Feed]

#1 Март 10, 2016 21:59:55

Razor
Зарегистрирован: 2012-09-11
Сообщения: 127
Репутация: +  2  -
Профиль   Отправить e-mail  

PyQt4: выделить первую строку QListView

Доброго времени суток!

Сколько не пытался, так и не смог выделить первую строку после прогрузки интерфейса. Тип - QListView.

Пытался воспользоваться поиском, везде советы создать индекс модели и загрузить его. Сделал - не помогает. Возвращает None при загрузке в QListView:

index = self.ui.nodes_list.model().index(0, 0)
print self.ui.nodes_list.setCurrentIndex(index)
где self.ui.nodes_list - это QListView

Как выбрать первый элемент списка?

И небольшой дополнительный вопрос знатокам: везде советуют использовать QListWidget вместо QListView. Насколько это правильно и почему?

Офлайн

#2 Март 10, 2016 22:44:16

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2756
Репутация: +  184  -
Профиль   Отправить e-mail  

PyQt4: выделить первую строку QListView

> везде советы создать индекс модели и загрузить его
Тебе правильно советуют.

> Сделал - не помогает
Индекс создаётся? Если создаётся, то код в студию.

> Возвращает None при загрузке в QListView
А оно и не должно ничего возвращать.

> везде советуют использовать QListWidget вместо QListView. Насколько это правильно и почему?
Где такое советуют? Сейчас наоборот чаще модель/представление используют.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Онлайн

#3 Март 10, 2016 23:01:24

Razor
Зарегистрирован: 2012-09-11
Сообщения: 127
Репутация: +  2  -
Профиль   Отправить e-mail  

PyQt4: выделить первую строку QListView

Rodegast
А оно и не должно ничего возвращать.

Я извиняюсь, вышло недразумение. Я все написал правильно и тот код, который я указал - действительно работает. Ошибку нашел в другом месте:
self.ui.nodes_list.clicked.connect(self.get_node_to_variants)
Я повесил функцию на clicked, а пытался вызвать ее выделением. Изменил на выделение и все заработало:
self.ui.nodes_list.selectionModel().selectionChanged.connect(self.get_node_to_variants)
Вы вроде ответ и не написали, но до меня дошло только во время прочтения вашего ответа. Магия какая-то. Спасибо

Офлайн

#4 Март 11, 2016 01:33:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9882
Репутация: +  853  -
Профиль   Отправить e-mail  

PyQt4: выделить первую строку QListView

Razor
везде советуют использовать QListWidget вместо QListView. Насколько это правильно и почему?
Описание Описание (перевод)
Туториал

Разделение на модель/представление даёт возможность подключать разные представления к одной модели с данными (в том числе одновременно) и даёт возможность иметь произвольную структуру для хранения отображаемых данных.



Отредактировано py.user.next (Март 11, 2016 01:34:45)

Офлайн

#5 Март 11, 2016 03:54:23

Razor
Зарегистрирован: 2012-09-11
Сообщения: 127
Репутация: +  2  -
Профиль   Отправить e-mail  

PyQt4: выделить первую строку QListView

py.user.next
Описание Описание (перевод)
Туториал
Спасибо за ссылки и уточнение. Без сарказма, вы внесли крайне большой вклад в мое образование. Просто модели с первого взгляда смотрятся немного странно, но потом понимаешь, что это не сложность, а гибкость.

Офлайн

  • Начало
  • » GUI
  • » PyQt4: выделить первую строку QListView[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version