Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 6, 2009 20:34:40

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор значения в QTableWidget

Собственно, продолжаем серию “нубские вопросы”. Хочу сделать, чтобы при выборе мышкой определенного айтема в QTableWidget ячейка превращалась в комбобокс с возможными вариантами, из которых можно выбирать (как в, упаси господи, MS Access). Можно ли это сделать и если да, то как?



Офлайн

#2 Ноя. 7, 2009 00:19:21

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор значения в QTableWidget

Вот пример, который идет с PyQt, кстати рекомендую эти примеры к изучению, там много прикольного.



Офлайн

#3 Ноя. 7, 2009 17:10:22

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор значения в QTableWidget

pasaranax
спасибо, отличный пример, только пока никак не пойму, как применить это не ко всем ячейкам таблицы, а только к определенным. Надо как-то химичить с QStandardItemModel? И потом, там для QTableView, а у QTableWidget метод setModel() приватный…

АПД: пытаюсь сделать так:

    def createEditor(self, parent, option, index):
if (index.column() == 0):
return QtGui.QItemDelegate.createEditor(parent, option, index)
editor = QtGui.QComboBox(parent)
editor.addItem(QtGui.QApplication.translate("SmallWindow", "One", None, QtGui.QApplication.UnicodeUTF8))
editor.addItem(QtGui.QApplication.translate("SmallWindow", "Two", None, QtGui.QApplication.UnicodeUTF8))
editor.installEventFilter(self)
return editor
вылетает ошибка:
return QtGui.QItemDelegate.createEditor(parent, option, index)
TypeError
:
first argument of unbound method QItemDelegate.createEditor() must be a QItemDelegate instance
при этом класс, естественно, наследуется от QtGui.QItemDelegate. Что я не так делаю?

Еще АПД:
Вроде все работает, если передавать первым аргументом self…

Все, кажись, разобрался :) Спасибо большое



Отредактировано (Ноя. 7, 2009 18:19:25)

Офлайн

#4 Ноя. 7, 2009 20:55:02

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор значения в QTableWidget

А я вообще с моделями еще дела не имел, только с виджетами. Может кто-нибудь меня убедит, что модели это круто? :)



Офлайн

#5 Ноя. 10, 2009 12:33:29

Митрич
От:
Зарегистрирован: 2009-03-19
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор значения в QTableWidget

чтобы редактирование ячейки шло не через QLineEdit, а тем виджетом, который нужен, необходимо обратиться к Model-View-Delegate… довольно просто всё делается с помощью QStandardItemModel, QTableView и QItemDelegate. пример есть выше, можно также обратиться к примерам в документации



Офлайн

#6 Ноя. 10, 2009 16:21:13

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор значения в QTableWidget

Митрич
В случае с QTableWidget не нужен QStandartItemModel. Просто создается QItemDelegate и в нем оверрайдятся методы принятия-отдачи данных, модель уже есть.



Офлайн

#7 Янв. 19, 2012 12:30:31

spirits25
От:
Зарегистрирован: 2011-09-29
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбор значения в QTableWidget

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

pasaranax
Вот пример, который идет с PyQt, кстати рекомендую эти примеры к изучению, там много прикольного.
Ссылка уже не работает, подскажите, как вставить QComboBox в ячейку QTableWidget? Ссылки, код, подсказки - что-нибудь=)

Всё, нашёл простой способ
        Combo = QtGui.QComboBox()
Combo.addItem('one')
Combo.addItem('two')
Combo.currentIndexChanged.connect(self.tempCombo)
mytable.setCellWidget(3, 4, Combo)
Просто, не правда ли?



Отредактировано (Янв. 19, 2012 14:50:56)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version