Pregunta

¿Hay alguna manera de especificar la posición inicial de la ventana de un niño en Qt?

Tengo una aplicación que se ejecuta en Linux y Windows y parece que el comportamiento predeterminado de Qt permite al Administrador de ventanas determinar la ubicación de las ventanas secundarias.

En Windows, esto está en el centro de la pantalla en la que se encuentra el padre, lo que parece razonable.

En Linux, en GNOME (metacity) siempre está en la esquina superior izquierda, lo cual es molesto.No puedo encontrar ninguna preferencia del administrador de ventanas para metacity que me permita controlar la ubicación de las ventanas, por lo que me gustaría anular ese comportamiento.

¿Fue útil?

Solución

Geometría del widget Qt

Llame al método move(x, y) en la ventana secundaria antes de show().Los valores predeterminados para xey son 0, por eso aparece en la esquina superior izquierda.
También puede utilizar la posición de la ventana principal para calcular una posición relativa para la ventana secundaria.

Otros consejos

Generalmente, recomendaría no forzar las posiciones de las ventanas a menos que su aplicación tenga requisitos de ventanas muy especiales.Es trabajo del administrador de ventanas determinar dónde se colocan las nuevas ventanas y la mayoría de ellas hacen un buen trabajo.Si MetaCity no está escogiendo una buena posición, entonces ese es su problema.

Si realiza su propia ubicación de ventanas, puede obtener un mejor resultado que el que daría un administrador de ventanas deficiente, pero también se perderá los algoritmos inteligentes de ubicación de ventanas disponibles en administradores de ventanas más avanzados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top