Найти - Пользователи
Полная версия: Много Кнопок и и функции для них
Начало » GUI » Много Кнопок и и функции для них
1
apologize828
Привет Всем!Стал интересен такой момент:
Как на кнопку цеплять функцию понятно,а вот если мы программно создаем много кнопок,то как на каждую из них повесить свою функцию?
Например решил посмотреть на примере калькулятора:
text_button=[['7','8','9','/','sqrt'],['4','5','6','*','%'],['1','2','3','-','1/x'],['0','+/-',',','+','=']]
index_row_cell=0
index_column_cell=0
b=0
c=0

for i in range(4):
for j in range(5):
bt=QtGui.QPushButton(text_button[b][c])
kompanovka.addWidget(bt,index_row_cell,index_column_cell)
index_column_cell+=1
c+=1
b+=1
c=0
index_column_cell=0
index_row_cell+=1
Подскажите что можно сделать?
o7412369815963
может на все кнопки повешать один обработчик, а там уже разбирать какая кнопкам нажата, например по заголовку
apologize828
o7412369815963
может на все кнопки повешать один обработчик, а там уже разбирать какая кнопкам нажата, например по заголовку
Да спасибо, я типа такого и думал!только реализация пока хромает))попробуем еще разок напречь мозги)!
dartNNN
Может поможет:
       def buttonConnect ( button, code ) :
button.clicked.connect ( lambda : self.buttonClicked ( code ) )

buttonConnect ( self.digitButton_0, '0' ); buttonConnect ( self.digitButton_1, '1' )
buttonConnect ( self.digitButton_2, '2' ); buttonConnect ( self.digitButton_3, '3' )
buttonConnect ( self.digitButton_4, '4' ); buttonConnect ( self.digitButton_5, '5' )
buttonConnect ( self.digitButton_6, '6' ); buttonConnect ( self.digitButton_7, '7' )
buttonConnect ( self.digitButton_8, '8' ); buttonConnect ( self.digitButton_9, '9' )
buttonConnect ( self.pointButton, '.' ); buttonConnect ( self.changeSignButton, '+/-' )
buttonConnect ( self.backspaceButton, 'b' ); buttonConnect ( self.clearButton, 'c' )
buttonConnect ( self.divideButton, '/' ); buttonConnect ( self.multiplyButton, '*' )
buttonConnect ( self.minusButton, '-' ); buttonConnect ( self.plusButton, '+' )
buttonConnect ( self.equalButton, '=' ); buttonConnect ( self.squareRootButton, 'sqrt' )
buttonConnect ( self.powerButton, 'x**2' ); buttonConnect ( self.reciprocalButton, '1/x' )
buttonConnect ( self.percentButton, '%' )
self.okButton.clicked.connect ( self.okButtonClicked )

def buttonClicked ( self, code ) :
expr = str ( self.display.text () )
if code == 'b' : # backspace
self.display.setText ( expr [ : -1 ]
ЗЫ. Код нагло стырил с другого форума, где он был взят из какого-то калькулятора
Митрич
код калькулятора можно не тырить. он находится в примерах к PyQt, поставляемых вместе с библиотекой и тоже бесплатно:-)
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