Здравствуйте, господа!
Делаю на pyqt экранную клавиатуру, которая состоит из 10 цифр. Вся клавиатура - это 10 QPushButton-ов.
Дабы это все заработало, делаю такие связи сигнал-слот
QtCore.QObject.connect(self.ui.button1,QtCore.SIGNAL(“clicked()”), self.addDigit1)
QtCore.QObject.connect(self.ui.button2,QtCore.SIGNAL(“clicked()”), self.addDigit2)
QtCore.QObject.connect(self.ui.button3,QtCore.SIGNAL(“clicked()”), self.addDigit3)
QtCore.QObject.connect(self.ui.button4,QtCore.SIGNAL(“clicked()”), self.addDigit4)
QtCore.QObject.connect(self.ui.button5,QtCore.SIGNAL(“clicked()”), self.addDigit5)
QtCore.QObject.connect(self.ui.button6,QtCore.SIGNAL(“clicked()”), self.addDigit6)
QtCore.QObject.connect(self.ui.button7,QtCore.SIGNAL(“clicked()”), self.addDigit7)
QtCore.QObject.connect(self.ui.button8,QtCore.SIGNAL(“clicked()”), self.addDigit8)
QtCore.QObject.connect(self.ui.button9,QtCore.SIGNAL(“clicked()”), self.addDigit9)
QtCore.QObject.connect(self.ui.button0,QtCore.SIGNAL(“clicked()”), self.addDigit0)
Уже некрасиво выглядит, но дальше еще хуже. 10 раз объявляю функции addDigit. Например:
…
def addDigit4(self):
self.addOverallDigit(4)
…
def addDigit8(self):
self.addOverallDigit(8)
…
И уже только в функции addOverallDigit я могу полученный символ добавить в итоговую переменную. Весь этот ужас из-за того, что при связи сигналов и слотов, я не могу сделать запись вида:
…
QtCore.QObject.connect(self.ui.button9,QtCore.SIGNAL(“clicked()”), self.addOverallDigit(9))
QtCore.QObject.connect(self.ui.button9,QtCore.SIGNAL(“clicked()”), self.addOverallDigit(0))
…
И приходится вводить переходные функции.
Есть ли какое-то более изящное решение?
Заранее благодарен!