Qt Forum.

Koble klikket () signal fra PushButton til et spor tomt (int)

Jeg ma gjore noe slikt:

QObject :: connect (CardMat [i] .button, SIGNAL (klikket ()), dette, SLOT (Modifisering (i)));

Jeg er en indeks i en for loop, jeg vil ha hver knapp i CardMat [] kallespor «Modifica (int)» med et annet heltallsparameter (indeks i)

Hvordan kan jeg gjore dette?

[[Doc: QSignalMapper]] kommer i tankene.

Jeg forstar ikke hva jeg ma beklage.

I verste fall kan du definere dine egne signaler og spor.

I widgetens klasse definerer du et spor slik:

og i implementeringsanropet som fungerer.

og gjor tilkoblingen til sporet.

[sitat forfatter = «WellSaid & quot; dato = «1329316504»] jeg forstar ikke hva jeg ma beklage [/ quote]

Dokumentene har et eksempel. Du trenger bare a erstatte QStrings de bruker med ints. De respektive metodene er der.

Ellers ta en titt pa «tagg sok»: / sok / tag / qsignalmapper, v r sa snill, det har v rt lagt noen eksempler tidligere.

Koble til (CardMat [i] .button, SIGNAL (klikket ()), dette, SLOT (kart ()));

signalMapper – & gt; setMapping (CardMat [i] .button, i);

koble (signalMapper, SIGNAL (kortlagt (int)), dette, SIGNAL (klikket (int)));

men na? hvor jeg ma skrive koden til sporet mitt?

EDIT: Denne koden gir noen feil.

EDIT 2: Jeg lost pa denne maten:

I konstruktor angir Objektnavn for hver knapp, slik:

CardMat [i] .ibutton = ny QPushButton (dette);

Sa na er den forste ringen av navnet pa hver knapp nummeret i matrisen CardMat [].

Deretter i «Modfica ()» slot, for a skaffe nummeret til avsenderobjektet, gjor jeg dette:

// Ottengo il numero della carta che ha chiamato Modifica ()

char * str = avsender () -> objektnavn (). toAscii (). data ();

Du skal tilpasse koden, ikke kopiere den til char og gjore en erstatning «QString» med «int».

Du bor koble mapped () signalet til et spor i klassen din, ikke (sannsynligvis ikke-eksisterende) signal (Hint legg til et argument til Modifica-sporet!). Du far nummeret til den klikkte knappen i sporet gratis.

Hei, Det er en liten endring i det ovennevnte problemet. Jeg skriver tilkoblingssignalet og sporet i main.cpp-filen.

Hva er sporene jeg kan bruke herfra. Kan jeg inkudere et nytt klasseobjekt og ringe et spor av den klassen.

Hei, Det er en liten endring i det ovennevnte problemet. Jeg skriver tilkoblingssignalet og sporet i main.cpp-filen.

Hva er sporene jeg kan bruke herfra. Kan jeg inkudere et nytt klasseobjekt og ringe et spor av den klassen.

Jeg tror en QButtonGroup ville fungere godt for det du vil gjore. Legg alle knappene dine til en knappgruppe og koble til knappgruppens knappKlikket (int id) -signal til sporet. Du ma inkludere unikt id (heltall) nar du legger til hver av knappene dine til gruppen.

Jeg tror en QButtonGroup ville fungere godt for det du vil gjore. Legg alle knappene dine til en knappgruppe og koble til knappgruppens knappKlikket (int id) -signal til sporet. Du ma inkludere unikt id (heltall) nar du legger til hver av knappene dine til gruppen.

Ser ut som din forbindelse til Qt Forum var tapt, vent mens vi forsoker a koble til igjen.