Después de muchos meses de intentarlo, búsqueda, revisión de código, etc. Soy incapaz de encontrar una solución para posicionar correctamente una nueva ventana en QT. En mi caso más básico simplemente quiero obtener el tamaño final de la ventana y centrarlo debajo del ratón. Se desplazará para garantizar que ninguna parte de la ventana se encuentre fuera de la pantalla. No desea tener la ventana aparecen a continuación, pasar a su posición, que produce sacudidas visual, en particular con FX escritorio encendida.lugar Qt nueva ventana correctamente en pantalla, sobre el centro del ratón, se mueven en la pantalla
Los problemas que he encontrado, no todos los cuales tienen las soluciones adecuadas:
frameGeometry no siempre se llena antes de la ventana se ha mostrado antes.
frameGeometry es a veces totalmente erróneo, en particular, en Windows 7.
Antes de mostrar que no es posible saber si sizeHint o el tamaño se aplicarán, o alguna otra cosa en el medio. Es decir, la política de tamaño no parece predecible.
Tenga en cuenta que sé cómo guardar/restaurar la geometría de una ventana creada anteriormente. A pesar de los defectos QT aquí también tengo una solución de trabajo.
También tenga en cuenta que no puedo utilizar la colocación por defecto gestor de ventanas. Para aplicaciones que no son IDM en una configuración multi-monitor de su colocación es terrible (a menudo ni siquiera estar en el mismo monitor como el ratón).
También me gustaría evitar sub-clasificar a todos los widgets y diálogos sólo para implementar la solución, ya que no sería genérico. Si esta es la única manera posible, entonces yo estaría dispuesto a considerarlo (filtros de eventos deben también no ser una opción).
¿Alguien tiene buenas soluciones viables?
Ver mi última edición. La primera edición no fue segura. – TonyK