theme qtcurve qt_qpa_platformtheme look qt gtk

qt_qpa_platformtheme - qtcurve



GTK+o Qt en Windows (10)

Me preguntaba cuál debería considerar si necesito que el software se use en ambas plataformas, WIN y Linux, y ¿por qué?


Ambos son buenos juegos de herramientas que tienen sus ventajas y desventajas.

Una diferencia es el lenguaje de implementación. Qt está en C ++, y GTK + está en C. Sin embargo, GTK + tiene enlaces para muchos, muchos otros lenguajes (perl, python, C ++, .NET, etc.) por lo que no es un gran problema.

Una ventaja de Qt es que ofrece un rango de funcionalidad un poco más amplio (xml, acceso a la base de datos, programación de red, OpenGL, etc.). GTK + tiene básicamente todas estas cosas dentro de su órbita (por ejemplo, libxml2, librsvg, libsoup, libgda, etc.), pero no son un paquete coherente como Qt.

Mi recomendación personal es usar gtkmm , los enlaces de C ++ para GTK +. Ofrece un lenguaje orientado a objetos más cómodo para programar, y proporciona casi el mismo rendimiento nativo que usar GTK + de C. (Descargo de responsabilidad: Contribuyo a gtkmm).


Ambos son buenos kits de herramientas. Basaría mi decisión en la licencia. Qt requiere que pague una licencia si la usa en un producto comercial cuando GTK no lo hace.


Empaquetar GTK y sus dependencias en Windows es un proyecto a tiempo completo en sí mismo. Qt se distribuye mucho más fácilmente ya que no tiene dependencias que no vienen con Windows.

Qt ha sido multiplataforma desde el principio. GTK no siempre ha sido multiplataforma. Tales decisiones fundamentales dan forma al diseño general, y deben hacerse antes de que se escriba cualquier código en mi opinión.

Yo comentaría más, pero me estaría volviendo a la especulación, las dos cosas anteriores que sé con certeza.


GTK + se puede usar casi en todos los lenguajes de programación, en C ++ (usando gtkmm) en C (gtk +) en C # (con Gtk #) en Python (PyGtk). Detrás de GTK tienes Mono Framework, que es una gran implementación de .NET Framework para propósitos de plataforma cruzada. Si quieres usar Gtk #, tienes un gran IDE (MonoDevelop) con un diseñador de GUI muy poderoso. Puede echar un vistazo a www.mono-project.org. Pero aún depende de qué es lo que quieres construir, solo estás buscando herramientas gui, o todo el framework. Y la lógica detrás de las señales / ranuras es la misma en Gtk + y Qt, pero si está usando Gtk #, se transforman en el paradigma de delegados / eventos.


Qt 5.0 ganó la guerra. No soy un gran admirador de C ++ (prefiero la antigua C), pero debo admitir que el framework Qt es increíble. Intenta escribir un programa GUI con GTK que se ejecute en OSX, Linux, Windows (y pronto iOS y Android) con un aspecto nativo ... ¡Buena suerte!


Recomiendo usar Qt porque:

  • Es multiplataforma y cubre una amplia gama de sistemas operativos (incluido el móvil)
  • Es de código abierto y tiene una velocidad rápida para mejorar
  • Tiene un buen diseñador de GUI y un IDE muy capaz (Qt Creator)
  • El diseño de API es excelente y fácil de usar
  • Tiene una gran documentación que es fácil de leer
  • Tiene el sistema de traducción Qt que le permite tener una aplicación multilingüe
  • El sistema de diseño de GUI donde los widgets cambian de tamaño de acuerdo a un diseño hace que todo sea mucho más fácil
  • El QML te da la capacidad de crear una GUI fantástica con excelentes gráficos y animaciones
  • Tiene un gran soporte para redes y conectividad (socket, SSL, www, IPC, ...)
  • Tiene QTestLib para probar el código
  • Tiene muchos enlaces de idiomas si no desea usar C ++

También podría considerar wxWidgets. Nunca he usado ninguno de ellos, pero cuando estaba revisando los kits de herramientas multiplataforma, era el que había decidido probar.


Tres puntos adicionales a favor de Qt:

  1. Tu proyecto no tiene que ser GPL; hay muchas otras licencias de código abierto disponibles en la Excepción Qt GPL , incluidas BSD y LGPL.
  2. El tema predeterminado de Qt en Windows hace una mejor combinación de trabajo que el tema Wimp de GTK.
  3. Si desea admitir Mac más adelante, tendrá un tiempo mucho más fácil con Qt.

Yo preferiría Qt. Como hoy, Qt es de código abierto y gratuito bajo una licencia LGPL más permisiva. Qt está mejor portado para Windows y parece más nativo que GTK. Gimp en Windows, por ejemplo, se ve muy extraño, porque la mayoría de sus diálogos no son diálogos de Windows. Qt puede usar diálogos de Ventana nativos como Abrir / Guardar, lo que lo hace sentir mejor como marco. Y sí, Qt es un marco, no solo un widget GUI. No, no estoy anunciando Qt aquí, ya que Qt tiene algo de extraño para un usuario de Windows desde el punto de vista del desarrollo, por ejemplo, Qt está basado en Layout mientras que MFC / .NET está basado en ancla y los administradores de Layout de Qt a veces son extraños. Pero si tengo que elegir entre GTK y Qt, seleccionaré Qt. Además, ahora, Qt viene con muy buen IDE, Qt Creator, que es mi IDE predeterminado de C / C ++ para todos los tipos de proyectos (ya que Qt Creator se puede usar como tal).


mi $ 0.02:

He usado Qt de forma intermitente durante los últimos 4 años, y es sin dudas mi kit de herramientas favorito de todo lo que he probado (Win32, MFC, Borland, Java, GTK). Usé GTK durante unas semanas para probarlo, y no me gustó. Sobre todo fue porque creo que es incómodo usar C en lugar de C ++ para aplicaciones de GUI en una PC ... También trabajo integrado, y nunca usaría C ++ en un 8051, pero para una gran aplicación de GUI lo prefiero mucho . Si vas a probar GTK, te sugiero que busques en GTKmm , aunque nunca lo he usado.