| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Разработка GUI > PyQt, передать с сигналом параметр |
| Автор: Hayate 4.9.2011, 18:18 | ||
| В целях самообучения решил сделать калькулятор. Код, помимо GUI:
Как сделать, чтобы set_digit(self, digit) получала параметр digit? Чтобы было 10 кнопок, 10 сигналов, 10 цифр. |
| Автор: Hayate 5.9.2011, 17:41 |
| Вот такая загогулина, если в виде кода (Python 3.2): http://narod.ru/disk/24083182001/calc.zip.html Вот так вот передавать экмземпляру Display объекта DisplayLCD параметр parametr нельзя, а как можно? QtCore.QObject.connect(ui.Button_1, QtCore.SIGNAL('clicked()'), Display.set_digit(parametr)) |
| Автор: Amp 6.9.2011, 17:09 |
| Используй QSignalMapper. |
| Автор: Filin86 28.5.2012, 06:18 | ||||
Сигнал clicked не имеет параметров, а слот требует параметра.
|
| Автор: vrny 5.6.2012, 10:29 |
| Лямбдами. Можно в цикле создавать объект кнопки, лепить его в какой-нибудь лайоут и одновременно делать connect примерно такого вида: QtCore.QObject.connect(ui.Button_1, QtCore.SIGNAL('clicked()'), lambda: Display.set_digit(i) ) где i - индекс цикла от 0 до 9 ui в дизайнере сделан? Тогда придётся написать 10 таких строчек |