¿Cómo acceder al widget padre en qt?

votos
5

Tengo una clase heredada QTreeWidget (llamada PackList) y su principal es una KXmlGuiWindow. ¿Cómo puedo acceder a las máquinas tragamonedas de los padres?

He intentado con getParent () -> mySlot () desde la clase QTreeWidget pero tengo

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

¿Alguien sabe de la manera correcta? Gracias

Publicado el 09/12/2008 a las 14:51
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
11

Si conoce la clase de los padres, tendrá que enviar parentWidget () a esa clase y luego llamar a su ranura. Tenga en cuenta si es una ranura no hace ninguna diferencia en este caso. Estás llamando a un método.

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

Puede realizar la llamada sin transmitir conectando su señal a la ranura.

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

Por último, puede usar QMetaObject :: invokeMethod para llamarlo si no desea lanzarlo . Eso es probablemente excesivo.

Respondida el 11/12/2008 a las 03:21
fuente por usuario

votos
1

No estoy seguro de entender completamente tu pregunta.

Sin embargo, puede acceder al widget principal de un widget con parentWidget () .

Entonces, deberías poder llamar a cualquier ranura pública:

parentWidget()->a_slot();
Respondida el 09/12/2008 a las 15:16
fuente por usuario

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