tag mp3tag kid3 editar easytag deploy linux qt kde qt5

linux - kid3 - mp3tag



KDE nativo busca la aplicaciĆ³n Qt 5 (4)

Instalé Qt5 junto con Qt4 en mi máquina Linux de Kubuntu 12.10 y noté lo siguiente:

  • El programa compilado con Qt4 tiene una apariencia nativa de KDE. Utilizo el tema Oxygen predeterminado de KDE y también mi programa (observe el degradado suave con título y la selección azul del widget enfocado);
  • Pero cuando se vuelve a compilar con Qt5 sin ningún cambio en el código , usa un estilo diferente (parece que se llama Fusion ) y se ve incómodo y fuera de lugar (ver foto derecha)

Lo que quiero es bastante sencillo: quiero que mi aplicación se ajuste al sistema que lo rodea, es decir, que siempre se vea nativo. Cuando uso Qt4, estoy acostumbrado a tener esto por defecto. Qt5 también parecía tener un aspecto nativo normal en Windows. Pero, ¿qué tengo que hacer para tener lo mismo en Kubuntu también? E, idealmente, en todas partes ? Quiero decir, no quiero forzar la compilación de Linux de mi aplicación para usar estrictamente Oxygen . Quiero que use el tema que está configurado actualmente en KDE: como en el viejo Qt4.

Parece que el código de la aplicación no es relevante para este problema: no jugué con ningún QStyle, es más o menos el típico hello-world de Qt. Pero por si acaso está en GitHub .

UPD: @peppe ha dado una respuesta bastante suficiente sobre por qué ocurre este problema (el tema de oxígeno en KDE se compila contra Qt4 y Qt5 no lo puede usar). Pero todavía estoy buscando la respuesta sobre cómo solucionar esto? Traté de encontrar la fuente del tema Oxygen para jugar, pero no encontré nada excepto el tema Firefox .

UPD2: @kwirz suggested una idea interesante: forzar a la aplicación a usar el tema GTK + y habilitar oxygen-gtk en la configuración de KDE, lo que hace que las ventanas GTK se vean de manera similar a Oxygen. Por un lado, de hecho se ve más cercano a Oxygen:

Pero, por otro lado, ya vemos pequeñas diferencias: la edición de línea solo se vuelve gris, el botón enfocado aún no está resaltado, etc. Desafortunadamente, cuando intentamos aplicar esta técnica a widgets más complejos, aparecen aún más artefactos (especialmente en el cuadro combinado y spinner):

Entonces, parece que esta tecnología no puede ser una solución completa, pero aún muy útil son los casos simples.


Comience su aplicación Qt5 con el parámetro:

-style=gtk

No existe una configuración global que yo sepa, que hace esto para todas las aplicaciones QT5.

¡Buena suerte!


No es su aplicación, es solo que Oxygen está compilado contra Qt 4 y no Qt 5, por lo que Qt 5 no puede usarlo y vuelve al estilo predeterminado ("fusión"). Recuerde que los estilos son en realidad complementos , es decir, códigos, sujetos a los requisitos API / ABI para ser cargados y utilizados. Necesitas un estilo Oxygen compilado contra Qt 5.


Oxygen es parte de KDE, así que ahí es donde lo encuentras. No es un tema independiente. No puede compilar KDE contra Qt 5, no es compatible. La próxima versión principal de KDE (KDE 5) usará Qt 5.

Entonces, ahora mismo, no hay absolutamente nada que puedas hacer. Si desea que su aplicación se vea y se comporte bien en KDE 4, use Qt 4.


tratar

QApplication::setStyle(QStyleFactory::create("GTK+"));

como solución alternativa, parece nativa, si oxygen-gtk está instalado.