QT Dynamiczne przydzielanie funkcji do przycisków

0

Witam, przy pomocy connect próbuję połączyć akcję naciśnięcia przycisku z moją metodą, przyjmującą jeden argument, jednak brak jest jakiejkolwiek reakcji po wciśnięciu przycisku. Nie bardzo mam pomysł w czym jest problem, po podstawieniu close() zamiast metody set_album_page działa. Z góry dziękuję za pomoc.

Fragment kodu:

    button_tab[x] = new QPushButton;
    ui->gridLayout->addWidget(button_tab[x],x,y);
    button_tab[x]->setMaximumHeight(100);
    button_tab[x]->setMaximumWidth(100);
    connect(button_tab[x],SIGNAL(clicked()),this,SLOT(set_album_page(filepath))); //nie wywołuje tej metody
2

Afaik nie możesz podłączyć sygnału który ma mniej parametrów niż slot. Tak poza tym, polecam nową składnię connecta.

0

Rozumiem, w takim wypadku jak mogę do akcji kliknięcia przypisać metodę z inną ścieżką w argumencie dla poszczególnych przycisków?

2

Albo podpinaj lambdę ze ścieżką albo używaj QObject::sender(). Wołam @MarekR22, pewnie będzie w stanie powiedzieć coś więcej.

0

Dziękuję za pomoc, lambda rozwiązała problem.

connect(button_tab[pos],&QPushButton::clicked,[=](){set_album_page(filepath);}); 

1 użytkowników online, w tym zalogowanych: 0, gości: 1