Signalspor qt5

Fa via App Store Les dette innlegget i var app!

Qt5.6 signaler og slots overbelastning.

Jeg har laget en klasse for a handtere data mottatt fra spor og har opprettet flere overbelastede metoder med samme navn med en annen parametertype.

Er det mulig a bruke overbelastede metoder som spor?

Jeg har to erkl ringer sa langt:

Men den andre produserer en advarsel ved kjoring:

Fra klassen ‘clsSlot’:

pobjHandler er en peker til en forekomst av clsSlot.

Problemet med koden ovenfor er at det er mer enn en varslingsfunksjon (dvs. siden den er overbelastet). Du ma oppgi noyaktig hvilken som skal kobles til. Du kan gjore det med et kast, men i dette tilfellet bor du bare bruke den eldre Qt-syntaksen. For eksempel:

Tydeligvis er koblingskoden ovenfor bare et eksempel pa syntaksen, og du ma fylle den inn med riktig kode (for eksempel bytt avsender med Fcs :: Mount :: GetRef () kanskje).

Rediger: Her er en lenke til Qt-dokumentasjonen som forklarer hvorfor den gamle syntaksen skal brukes til overbelastning.

Som du kanskje ser i eksemplet ovenfor, er det ikke veldig vakkert a koble til QAbstractSocket :: :: feilen, siden feilen har en overbelastning, og a ta adressen til en overbelastet funksjon krever eksplisitt stoping, f.eks. en forbindelse som tidligere ble gjort som folger:

kan ikke bare omdannes til:

. fordi QSpinBox har to signaler kalt valueChanged () med forskjellige argumenter. I stedet ma den nye koden v re:

Noen makro kan hjelpe (med c11 eller type extensions) Det beste er sannsynligvis a anbefale ikke a overbelaste signaler eller spor

… men vi har lagt til overbelastninger i tidligere mindre utgivelser av Qt fordi a ta adressen til en funksjon var ikke en brukstilstand vi stotter. Men na ville dette v re umulig uten a bryte kildekompatibiliteten.