Найти - Пользователи
Полная версия: PyQt & QComboBox
Начало » GUI » PyQt & QComboBox
1
MorbidBoo
Добрый день.

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

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

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

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

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

P.S. Python 2.7.9, Qt 4.8.6
Rodegast
# Заполняем
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)
MorbidBoo
О! Спасибо большое. Изящно и то что нужно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB