c++ - library - wxwidgets python
¿Cuál de los siguientes, si corresponde, logra el aspecto nativo de Windows: GTK+, wxWidgets, Qt, FLTK? (4)
Dejando a un lado los detalles de implementación, la filosofía de wxWidgets es, y siempre ha sido, mirar de la manera más nativa posible. Nosotros, los desarrolladores de wxWidgets, no siempre logramos el objetivo de buscar indistinguiblemente de las aplicaciones nativas, pero siempre nos esforzamos por hacerlo. AFAIK esta no es una meta tan importante para Qt y definitivamente no para GTK +, entonces en mi opinión (obviamente parcial), wxWidgets es su mejor opción si realmente quiere brindar la mejor experiencia para sus usuarios, especialmente bajo OS X.
Para responder a su pregunta con mayor precisión, todo lo que enumera arriba se implementa utilizando controles nativos en wxWidgets para Windows (sin embargo, el control de texto enriquecido no está disponible de forma nativa en las otras plataformas).
Necesito escribir una aplicación que sea visualmente indistinguible de algo escrito originalmente para Windows XP / Vista / 7 usando lo que viene de manera predeterminada con el Visual Studio más moderno. Pero estoy desarrollando usando MinGW y Vim (en C ++).
En particular, quiero que los siguientes controles sean nativos en las tres versiones anteriores de Windows: forma de cromo, botones, casillas de verificación, menús, cuadros combinados, barras de progreso, barras de desplazamiento, cuadros de texto enriquecido . Esto será suficiente para mí.
Sé que si carga GdiPlus y otras cosas como riched32.dll
según sea necesario, y utiliza Windows API para crear instancias de controles, entonces el sistema operativo sustituirá su versión de GdiPlus u otra biblioteca, por lo que se verá como los controles de estilo XP en XP, Vista en Vista, etc.
Pero no quiero usar la API simple de Windows, porque incluso recuperar la fuente predeterminada requiere media página de código e historias similares, independientemente de lo que quiera hacer. Entonces me gustaría usar un juego de herramientas.
wxWidgets, Qt, GTK +, FLTK parecen ser los más utilizados. Pero todos son multiplataforma. He usado aplicaciones multiplataforma, y muchas de ellas tienen controles de GUI extranjeras (los llamo widgets). Así que mi pregunta es: ¿ cuál de estos conjuntos de herramientas se puede hacer para producir controles de interfaz de usuario de aspecto nativo verdadero enumerados anteriormente, que aparecen correctamente en las tres versiones de MSWin enumeradas anteriormente?
He escrito cada uno de ellos + "ventanas" en Google Imágenes, pero es difícil de decir, excepto que FLTK probablemente no puede hacerlo. Muchos de ustedes deben saber la respuesta de la parte superior de su cabeza ...
No hablaré de FLTK ya que no lo sé.
- wxWidgets usa el kit de herramientas nativo de la plataforma, (GTK en Linux, MFC en Windows, Cocoa en MacOS X).
- GTK usa una API de tematización para simular el aspecto de la plataforma (motor de clasificación personalizado en GTK2, motor basado en CSS en GTK3).
- Qt usa styles para simular la apariencia de la plataforma.
La API de wxWidgets es bastante fea según mi propia experiencia, porque tenía demasiados métodos disponibles en una u otra plataforma que hacen que las cosas no sean portátiles a menos que lo solucionen. A diferencia de GTK + y Qt, también agrega su propia capa de errores sobre el conjunto de herramientas que utiliza como back-end. Sin embargo, se esfuerza por tener el aspecto nativo de la plataforma ya que usa el kit de herramientas nativo.
GTK + 3 todavía tiene algunos bordes ásperos en Windows, que oficialmente admite desde GTK + 3.6. El proyecto GTK + delega en el proyecto MSYS2 la distribución de los binarios de Windows. Como ya está usando MinGW, es más o menos el mismo tipo de entorno. Tienen buenas fijaciones de C ++ con GTKmm. Sin embargo, es posible que tenga algo de trabajo para obtener el tema adecuado para su versión de Windows.
Qt es una buena opción para el desarrollo de C ++ multiplataforma con el objetivo principal de Windows, trata de imitar el aspecto y la sensación nativa de la plataforma, pero también tiene sus propias limitaciones teóricas.
En resumen, solo hay 2 enfoques:
- kits de herramientas que proporcionan sus propios widgets e intentan parecerse a la plataforma nativa proporcionándoles teorías (GTK + y Qt)
- kits de herramientas que usan widgets nativos pero ocultan su API detrás de una capa de abstracción (wxWidgets)
Ambos tienen pros y contras.
utilicé Java para multiplataforma nativa sin cambiar el código, utilicé c / c ++ wxwidgets para plataformas multiplataforma exclusivas si querías ir a poco rendimiento y ejecutables independientes, utilicé c / c ++ winapi para windows y x11 para gnu linux plataforma nativa y terminal de consola, python usado para consola de scripting y plataforma si desea que su software esté actualizado rápidamente, y ensamble utilizado para una consola puramente simple. Y a veces los combinaba todos con .dll de biblioteca compartida en Windows y .so en gnu linux. Y me gustaba hacer un rendimiento comparativo en estudios de programación con pequeños requisitos de hardware.
IUP: la biblioteca de interfaz de usuario portátil utiliza widgets nativos, C API y enlaces Lua.