2009-07-19 17 views

Respuesta

3

Técnicamente, cualquier widget inicializado con NULL es un widget de nivel superior, por lo que QApplication no debe asumir que uno de ellos es mejor que otro.
La forma en que generalmente lo hago es guardar un puntero al widget principal "real" en alguna parte, incluso una variable global o un singleton y referenciarlo cuando sea necesario.

2

Creo que topLevelWidgets() es lo más parecido posible.

Edit:

Yup. Qt4 agregó complejidad (y potencia). Ya no hay un MainWidget en toda la aplicación. Muchos QMainWindows se pueden crear y mostrar, y ocultar, y mostrar de nuevo. Esto es bueno, sin embargo :) Como notó shoosh, el comportamiento QT3 se puede simular fácilmente con la variable global (¡asqueroso!) O la subclase QApplication.

+0

Sí, vi este método. Pero se sentía como un paso en la dirección equivocada, ya que agrega complejidad. Hasta ahora, este es el único caso en el que siento que Qt3 es mejor que Qt4, y es por eso que tuve que preguntar. Dejaré la pregunta abierta un poco más, pero si a nadie se le ocurre algo mejor, aceptaré su respuesta. Gracias. – Kristian

+0

Bueno, siempre puedes hacer un seguimiento del "widget principal", dependiendo de tu aplicación. – Eugene

1

Creo que lo que está buscando ha sido reemplazado por la clase QMainWindow, que le permite establecer un set y get un widget central.