Feilsoking Qt’s signal-slotsforbindelser & # 8230;

Hva gjor du hvis du tror at du har koblet et signal til et spor riktig og likevel ikke slottet ditt? Jeg lop inn pa fredag klokka 17.30, omtrent det tidspunktet jeg hapet jeg skulle kalle det en dag og ga hjem. Heldigvis i mitt tilfelle var jeg bare passerer null for a koble til, og jeg fikk en melding i feilsokingsloggen om a prove a koble et signal fra et null objekt. (Dessverre for meg sa jeg ikke loggen med en gang, pa grunn av alle de andre greiene jeg dumpet til loggen.)

Hvis du er i samme bat, hva gjor du for a feilsoke situasjonen? Her er en rekke ting a prove:

Sjekk kompileringsloggen for feilmeldinger om udefinerte signaler og spor. Kontroller driftstidsloggen for feil ved tilkobling. Hvis det er nodvendig, ma du forsikre deg om at tilkoblingen lykkes ved a teste returverdien (den skal returnere sann. Kontroller at tilkoblingskoden er nadd, at utslippskoden er nadd, og spaltkoden. (Odds er en av dem ISN & # 8217; t.) Pass pa at du erkl rer forbindelsen slik:

koble (avsender, SIGNAL (someSignal (type)), mottaker, SLOT (mottatt (type)))

Signal- og sporspesifikasjonene skal ha argumenttyper, men ikke argumentene selv. Videre kan du utelate const og referansespesifikasjoner i argumentene; meta-objekt kompilatoren striper dem likevel. Kontroller parametrene til signalet og sporet og sorg for at de samsvarer noyaktig. Kontroller at du har korrekt deklarert signalene og sporene i overskriften pa riktig mate. For ovrig, v r sikker pa at avsenderen og mottakeren bade arver fra QObject, og at du har Q_OBJECT oppgitt i klassedisplayet. (Husk at du ma gjore begge deler.) Hvis du har glemt del av QObject-deklarasjonen i overskriften, kjor du igjen qmake og gjenoppbygger. Pass pa at du kobler til tilkoblingen for du paberoper noen funksjoner som brann signalet. Signaler kan brann synkront. Pass pa at du ikke kobler fra signalet hvor som helst med frakobling.

Vanligvis er problemet veldig enkelt a spore opp, spesielt hvis du sjekker loggen og signal- og spordeklarasjonen noye. En vanlig feil er a forsoke a fore et signal til et spor som ikke er erkl rt et spor, sa sjekk hodene dine noye!


Hi! Do you want to play in the most popular casino? We gathered it for you. Click here now!