Jak uzyskać dostęp do widgetu dominującej na Qt?

głosy
5

Mam dziedziczną QTreeWidget (tzw PackList) klasę i jej rodziców jest KXmlGuiWindow. Jak mogę uzyskać dostęp do gniazd jednostki dominującej?

Próbowałem getParent () -> mySlot () z klasy QTreeWidget ale mam

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

Czy ktoś wie jak poprawnie? Dzięki

Utwórz 09/12/2008 o 14:51
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
11

Jeśli znasz klasę rodzica, trzeba będzie oddać parentWidget () do tej klasy, a następnie połączyć się z gniazda. Należy mieć na uwadze, czy nie jest to gniazdo nie ma znaczenia w tym przypadku. Jesteś po prostu wywołanie metody.

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

Można nawiązać połączenie bez rzucania przez okablowanie swój sygnał do gniazda.

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

Wreszcie, można użyć QMetaObject :: invokeMethod to nazwać, jeśli nie chce go rzucić. To chyba przesada.

Odpowiedział 11/12/2008 o 03:21
źródło użytkownik

głosy
1

Nie jestem pewien, czy w pełni zrozumieć swoje pytanie.

Jednakże, można uzyskać dostęp do widgetu rodzicem widget z parentWidget () .

Następnie powinieneś być w stanie wywołać każdą szczelinę publicznego:

parentWidget()->a_slot();
Odpowiedział 09/12/2008 o 15:16
źródło użytkownik

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