Qt Forum.

[SOLVED] Oppheve virtuelle spor og bruk den nye QT5-tilkoblingsmakten.

Hvis jeg lager en klasse fra en baseklasse med virtuelle spor, blir sporene aldri kalt med den nye tilkoblingsmakten.

Hvis jeg bruker den gamle koblingssyntaxen, blir sporet kalt. Hva kan v re problemet?

klasse BaseClass: offentlig QObject.

klasse DerivedClass: offentlig BaseClass.

Hvorfor fungerer det ikke med den nye tilkoblingssyntaxen, men gjor det med den gamle syntaksen?

Tusen takk!

Jeg har provd akkurat na ogsa. Hvordan tar du om folgende nye syntaks Det virker bra.

Jeg provde pa Windows.

Sertifisert Qt Spesialist.

Hm. Erkl rte du det som en ren virtuell i baseklassen? Fungerer ikke her. Kanskje problemet er at jeg kobler til et spor i en klasse i dll-biblioteket.

Det er samme klasse som din. Jeg har lagt til en ekstra plass i grunnklassen. Dll burde heller ikke fore til noe problem.

@ klasse BaseClass: offentlig QObject.

eksplisitt BaseClass (QObject * foreldre = 0);

virtuelt tomrom vslot1 () = 0;

virtuelt tomrom vslot2 () = 0;

klasse DerivedClass: offentlig BaseClass.

Sertifisert Qt Spesialist.

Jeg har min base i dll1 og min derivec i dll2. Hvis jeg sender signalet som er koblet til sporet av grunnklassen, blir sporet i avledet aldri kalt.

Provde du det med dlls?

Jeg har ikke provd med dlls. Har du laget plugin eller er det vanlig dll? Haper du har eksportert funksjonene i dll med ekstern «C» for a unnga noe som mangler problemer.

Sertifisert Qt Spesialist.

Hei! Jeg eksporterer klassen. Er det nodvendig a eksportere DerivedClass? Eller er det nodvendig a eksportere klassen og hver metode / funksjon?

Takk for hjelpen.

Virker. Gjorde en fullstendig ombygging. Ta vare pa Q_DECL_EXPORT 😉

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


Vil du spille i det største kasinoet? Vi samlet det for deg. Registrer deg nå!