Форум сайта python.su
Доброго времени суток, подскажите как правильно организовать создание множество кнопок/чек-боксов в PyQt4 с последующим привязыванием к сигналам. Полагаю нужно использовать лямбда-функцию, но вопрос в другом - как сгенерировать нужное количество имен екземпляров класса? Прием как в Tk не конает.
Заранее спасибо.
Офлайн
Неужели нет никакого альтернативного варианта кроме как объявлять в ряд 30 кнопок?
Офлайн
Можно список кнопок сделать. А если имена делать, используй setattr().
>>> class A: ... def __init__(self): ... for i in 'abcd': ... setattr(self, i, i * 3) ... >>> a = A() >>> a.a, a.b, a.c, a.d ('aaa', 'bbb', 'ccc', 'ddd') >>>
Офлайн
py.user.nextЕсли я не ошибаюсь паттерн “фабрика объектов”?
Можно список кнопок сделать. А если имена делать, используй setattr().
Офлайн
saw_toothНе, это просто пример, чтобы было понятно, как работает setattr().
Если я не ошибаюсь паттерн “фабрика объектов”?
Работа фабрики объектов напоминает функционирование виртуального конструктора, - мы можем создавать объекты нужных классов, не указывая напрямую их типы. В самом простом случае, для этого используются идентификаторы типов.
Отредактировано py.user.next (Дек. 13, 2014 02:36:43)
Офлайн