Πώς να αποκτήσετε πρόσβαση στη μητρική widget στην QT;

ψήφοι
5

Έχω μια κληρονομική QTreeWidget (που ονομάζεται PackList) τάξη και η μητρική της είναι KXmlGuiWindow. Πώς μπορώ να έχω πρόσβαση σε slots της μητρικής;

Έχω δοκιμάσει getParent () -> MySlot () από την κατηγορία QTreeWidget, αλλά έχω

error: no matching function for call to 'PackList::mySlot()'

Ξέρει κανείς το σωστό τρόπο; Ευχαριστώ

Δημοσιεύθηκε 09/12/2008 στις 14:51
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
11

Εάν γνωρίζετε τάξης του γονέα, θα πρέπει να ρίξει parentWidget () στην εν λόγω κατηγορία και στη συνέχεια να καλέσετε υποδοχή σας. Λάβετε υπόψη σας είτε πρόκειται για μια υποδοχή δεν κάνει καμία διαφορά σε αυτή την περίπτωση ή όχι. Μπορείτε απλά καλώντας την μέθοδο.

((KXmlGuiWindow*)parentWidget())->mySlot();

Μπορείτε να πραγματοποιήσετε την κλήση χωρίς χύτευσης από την καλωδίωση μέχρι το σήμα σας στην υποδοχή.

connect( this, SIGNAL(mySignal()), parentWidget(), SLOT(mySlot()) );

Τέλος, μπορείτε να χρησιμοποιήσετε QMetaObject :: invokeMethod να την αποκαλούμε, αν δεν θέλετε να το ρίξει. Αυτό είναι μάλλον υπερβολή.

Απαντήθηκε 11/12/2008 στις 03:21
πηγή χρήστη

ψήφοι
1

Δεν είμαι σίγουρος ότι καταλαβαίνω πλήρως την ερώτησή σας.

Ωστόσο, μπορείτε να αποκτήσετε πρόσβαση στο μητρικό widget ενός widget με parentWidget () .

Στη συνέχεια, θα πρέπει να μπορείτε να καλέσετε οποιαδήποτε δημόσια υποδοχή:

parentWidget()->a_slot();
Απαντήθηκε 09/12/2008 στις 15:16
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more