Como acessar a widget pai no qt?

votos
5

Tenho um herdado QTreeWidget (chamado packlist) classe e seu pai é um KXmlGuiWindow. Como posso ter acesso aos slots do pai?

Eu tentei getParent () -> mySlot () da classe QTreeWidget mas eu tenho

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

Alguém sabe a maneira correta? obrigado

Publicado 09/12/2008 em 14:51
fonte usuário
Em outras línguas...                            


2 respostas

votos
11

Se você sabe a classe do pai, você terá que lançar parentWidget () para essa classe e, em seguida, ligue para o seu slot. Tenha em mente se é ou não é um slot não faz nenhuma diferença neste caso. Você está apenas chamar um método.

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

Você pode fazer a chamada sem lançar por fiação até o seu sinal para o slot.

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

Por último, você pode usar QMetaObject :: invokeMethod chamá-lo se você não quer lançá-lo. Isso é provavelmente um exagero.

Respondeu 11/12/2008 em 03:21
fonte usuário

votos
1

Eu não tenho certeza eu compreendo perfeitamente a sua pergunta.

No entanto, você pode acessar o widget pai de um widget com parentWidget () .

Então, você deve ser capaz de chamar qualquer slot pública:

parentWidget()->a_slot();
Respondeu 09/12/2008 em 15:16
fonte usuário

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