PyQt i uruchomienie funkcji z przycisku

PyQt i uruchomienie funkcji z przycisku
hannibal
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:7
0

Witam. Zacząłem w końcu obudowywać swój program okienkiem i teraz mam pytanie. Używam PyQt4 i Pythona 2.7, ale mam mały problem bo nie mogę zrealizować reakcji na przycisk. Chciałem aby po kliknięciu na button odezwała się funkcja która ma przypisany jeden argument ale coś to nie idzie, gdyż argument funkcji jest dziwnym trafem None. Ktoś mógłby mi podpowiedzieć gdzie robię błąd? W klasie zmienne przechowywuję wszystkie ważne zmienne tak by każda funkcja miała do niej dostęp.

Kopiuj
        self.inicjalizacja_btn.connect(self.odpowiedz("I;20;")) #odpowiedź na guzik
    
    def odpowiedz(self,zmienne.rozkaz):
         = rozkazuje
        z = zmienne
        nrk = zmienne.nrk
        nrk = nrk + 1
        zmienne.nrk = nrk
        self.wyslij()

Btw. jak wciśnięcie przycisku można by wrzucić w if'a? Chodzi o to by zebrał kilka danych. Bo starałem się to zrobić w logice boolowskiej ale to nic nie dawało...

liske1
  • Rejestracja:ponad 13 lat
  • Ostatnio:dzień
  • Postów:522
0

Przycisk robisz tak:

Kopiuj
self.nazwa_przycisku.clicked.connect(lambda: self.nazwa_funkcji(argumenty))

I masz blad w 1 linijce funkcji odpowiedz, masz = rozkazuje, ale nie masz zadnej zmiennej po lewej stronie.
Funkcja także przyjmuje niepoprawnie argument, najlepiej powinna przyjmowac np.

Kopiuj
def odpowiedz( self , rozkaz):

(chodzi o argument, ktory nie powinien byc z kropka).
Ty w funkcji mu piszesz:
Włącz funkcje odpowiedz z argumentem ktory pobierzesz z pliku zmienne i nazywa sie ta zmienna rozkaz,
a chcesz miec funkcję ktora jako parametr przyjmuje to co Ty podasz w przycisku, dlatego Ci wychodzi wartosc None , a nie "I;20;" .


edytowany 2x, ostatnio: liske1
hannibal
DZIĘKI WIELKIE! W KOŃCU MOGĘ RUSZYĆ! à propos's błędu: literówka, w międzyczasie coś chciałem podmienić aż w końcu się zżałościowałem i napisałem tutaj :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.