Уведомления

Группа в Telegram: @pythonsu

#1 Март 3, 2016 09:11:16

MorbidBoo
Зарегистрирован: 2016-03-03
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt & QComboBox

Добрый день.

Есть проблема:

Есть ComboBox, есть таблица в базе (уникальный индекс, название поля).
Когда индексы идут по порядку, проблем нет. Но иногда часть полей, нужно скрыть, пропустить и т.д. тут возникает проблема. Так как когда добавляешь итем в ComboBox через ComboBox.addItem(), индексы в нем идут по порядку и таким образом нарушается связь.

Пример для наглядности.

Есть записи в таблице
Индекс, Название
--------------------
1, Первое поле
2, Второе Поле
4, Четвертое поле.

После добавления в ComboBox через addItem там будут три записи (1 - Первое поле, 2 - Второе поле, 3 - Четвертое поле). То есть индекс у последнего 3, а в базе он 4ый

Собственно вопрос, как можно решить эту ситуацию? (пока приходиться извращаться и добавлять индексы в название, и потом уже по ним искать и фильтровать или создавать промежуточный список и т.д. и т.п. Может есть какой то более нативный способ?

P.S. Python 2.7.9, Qt 4.8.6

Офлайн

#2 Март 3, 2016 14:41:36

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

PyQt & QComboBox

# Заполняем
for i, pole in enumerate(zapros):
     self.comboBox.addItem(pole.text)
     self.comboBox.setItemData(i, pole.id, QtCore.Qt.UserRole)
 
# Получаем
Id = self.comboBox.itemData(self.comboBox.currentIndex(), QtCore.Qt.UserRole)



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

Офлайн

#3 Март 4, 2016 09:25:55

MorbidBoo
Зарегистрирован: 2016-03-03
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt & QComboBox

О! Спасибо большое. Изящно и то что нужно.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version