es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué la apariencia de Wayland y Xorg en Qt6 es diferente?

Estoy tratando de usar Qt para crear una ventana muy simple.

Mi objetivo es obtener algo que se parezca a una ventana nativa del sistema operativo (con el menor esfuerzo), nada más, pero si es posible, nada menos.

Para facilitarlo, estoy utilizando las bibliotecas de Python para Qt y he probado diferentes combinaciones desde mi primer intento que falló de alguna manera. Las decisiones que debo tomar son:

  • “PyQt” o “PySide”.
    • Preferiría la segunda opción, ya que cuenta con soporte oficial (además, son bastante equivalentes).
  • “Qt5” o “Qt6”.
    • Preferiría la segunda opción, ya que es la versión estable más reciente.

Ahora bien, como mencioné anteriormente, he probado diferentes combinaciones, pero la primera elección parece irrelevante, mientras que la segunda es importante:

  • La ventana de “Qt5” se ve igual en XOrg y Wayland.
  • La ventana de “Qt6” no se ve igual, sin importar qué paquete de Python utilice (“PyQt” o “PySide”).

En particular, en Wayland, “Qt6” anula el estilo predeterminado del sistema operativo, incluido el puntero (es decir, el puntero cambia cuando se pasa por encima de la ventana de “Qt6”), y esto no ocurre en XOrg, tampoco ocurre en “Qt5” (donde en Wayland y XOrg tienen la misma apariencia).

Aquí hay un par de capturas de pantalla de un ejemplo simple:

Se entiende que las dos ventanas son generadas por el mismo script…

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Wayland, PySide6 y Qt6, recomendaría utilizar PySide6 con Qt5 para lograr una ventana de sistema operativo simple con apariencia nativa. Si bien el uso de Qt6 puede ser preferido por su última versión estable, actualmente anula el estilo predeterminado del sistema operativo en Wayland y cambia la apariencia del puntero.

    Según las capturas de pantalla proporcionadas, queda claro que el mismo script genera ventanas diferentes cuando se ejecuta en Wayland y XOrg con Qt6, mientras que las ventanas generadas con Qt5 se ven iguales en ambos servidores de visualización. Por lo tanto, para obtener una ventana simple con apariencia nativa de SO, es mejor utilizar PySide6 con Qt5.

Comments are closed.