2010-10-29 20 views
15

En su opinión, ¿cuál es la mejor manera de crear gui en Windows? con apk gtk o win32?¿Su mejor biblioteca para crear GUI (gtk, qt, win32 api, etc.)?

¿Recomiendas GTK para Windows? Sí? NO ? Por qué ?

+0

Tienes innumerables opciones. ¿Hay alguna razón por la que solo te estás limitando a GTK y Win32? – EboMike

+0

no, no hay una razón. ¿Hay otras bibliotecas de GUI para Windows? dime más :) – xRobot

+0

http://stackoverflow.com/questions/14079909/is-gtk-3-xa-real-cross-platform-solution/14122490#14122490 Puede que no quieras elegir GTK + hoy en día – RoestVrijStaal

Respuesta

14

veamos.

  • Win32 es de muy bajo nivel, basado en C y de uso incómodo.
  • MFC se considera obsoleto.
  • C# (o C++) con .NET es probablemente su elección principal para el desarrollo específico de Windows.
    • Existen incluso formas semi-limitadas de transferir ese código a otras plataformas (Mono).
  • Java es ideal para código muy independiente de la plataforma que "simplemente se ejecuta". Lo siento, dijiste C++.
  • QT es relativamente independiente de la plataforma.
  • GTK +, por supuesto, aunque personalmente no tengo mucha experiencia en ello.

Personalmente, si hago algo específico de Windows, utilizo .NET - las herramientas en Visual Studio son muy potentes, y es una gran suite que lo abarca todo.

Para cosas independientes de la plataforma, utilizo Java, pero esa puede no ser la herramienta que elija. He visto QT usado mucho para ese propósito.

+3

las aplicaciones gtk en las ventanas se ven horribles y las fuentes son feas –

+0

El diluvio se ve muy bien, usa GTK ¿verdad? – nmr

+0

¿Qué hay de wxWidgets? – hl3mukkel

2

Si la compatibilidad de Linux (o Mac) es su preocupación, entonces Qt. Else Win32.

4

win32 api es demasiado complicado, MFC es demasiado molesto. He usado MFC, win32api y Qt en Windows. En mi opnion, Qt es el mejor. No he probado GTK, así que lo siento sin saber nada al respecto.

+0

+1 para mfc y qt. – bmeric

4

He utilizado GTK + en el pasado para una aplicación multiplataforma. Me pareció relativamente simple de aprender y usar. En mi opinión, la principal ventaja de GTK + es que podrá transferir su aplicación a otros sistemas de ventanas. Y la principal desventaja es que no se verá exactamente como otras aplicaciones de Windows. Si está haciendo un trabajo multiplataforma o ya está muy familiarizado con GTK + (y no tiene tiempo para aprender a usar una nueva caja de herramientas), lo recomendaría.

3

ambos son para c, pero hay una buena envoltura para gtk (gtkmm).

gtk tiene su propio aspecto, por lo que no hay desollamiento de elementos ui en el lado del usuario (con estilos de Windows). pero me gusta programar con más.

Win32, MFC, .NET se limita principalmente a MS Visual Studio, mientras que GTK es muy difícil de usar con vs

usted debe tener una mirada en Win32, .NET, gtkmm y QT. sólo tratar de escribir y compilar un programa simple hola mundo con ellos

aspectos positivos de Win32: Código

  • ventanas nativas
  • rápida

inconvenientes:

  • no hay clases , solo c con asas (muy malo)
  • en mi opinión muy mal documentado

aspectos positivos de GTK (mm):

  • fácil de aprender/program
  • buenas documentado

desventajas:

  • de alguna manera difícil de instalar los archivos de desarrollo
  • sin ventanas nativas se ven
+0

Otra desventaja de gtk (mm) es que tienes muchas dependencias (glib, gdk, pango, etc.) y que siempre tienes que arrastrar cientos de archivos DLL a la máquina del usuario:/ – Christian

+1

@Christian Creo que te refieres a la desventaja de Windows es que no puede manejar dependencias en absoluto – alternative

0

Para la plataforma de desarrollo independiente, recomendaría Qt en lugar de la actual GTK. El dibujo GTK2 fue muy lento en comparación con Qt y Win32. Si te gusta la apariencia nativa, wxWidgets está hecho para ti.

12

Realmente tiene una gran cantidad de juegos de herramientas GUI/frameworks para elegir: Qt, wxWidgets, GTK +/gtkmm, WinAPI, MFC, .NET WinForms/WPF ... y esos son solo los más populares.

Dado que se limita a C++, golpearía .NET porque C++ en .NET está destinado a servir como una conexión entre el mundo no gestionado y el administrado. Eso no significa que no puedas usarlo para otros tipos de desarrollo, pero dada la sintaxis incómoda y las innumerables trampas, yo no iría con eso. Por otra parte, el generador de código de Windows Forms VS pone código de las formas en el archivo de cabecera .. brrrr

Como otros han dicho, WinAPI está escrito en C, muy rápido y potente, pero muy bajo nivel y no es fácil programa/aprender. MFC sería una opción ya que está escrito en C++, es más fácil de usar que WinAPI y también muy poderoso. Sin embargo, es bastante obsoleto (debido a la presencia de .NET, principalmente).

No recomendaría GTK +/gtkmm (un C++ envoltorio para GTK +) para Windows ya que no consigue las ventanas nativas mira, es bastante molesto para configurar en su ordenador de desarrollo y también arrastra alrededor de toneladas de dependencias que debe instalar en la máquina del usuario. Eso es realmente una lástima porque especialmente gtkmm tiene una jerarquía y un diseño de clase muy hermosos. Probablemente una de las bibliotecas de GUI mejor diseñadas :)

Dicho esto, ¿qué recomendaría? Qt o wxWidgets.Ambos están escritos en (bastante moderno) C++, desarrollados activamente, tienen un buen diseño de biblioteca, funcionan con múltiples plataformas y ofrecen muchas funcionalidades. En cualquier caso, juegue con algunas de las bibliotecas enumeradas en las respuestas aquí y vea cuál le permite hacer las cosas que desea hacer más fácilmente :)

+0

+1 para vxWidgets mencionan –

2

Personalmente prefiero Qt, pero realmente depende de qué tipo de las interfaces de usuario que desea hacer.

contra Win32:

  • de bajo nivel, de alta complejidad para lograr cosas triviales. Tienes que hacer TODO

  • si vas por esta ruta, recomiendo un libro como el de Petzold.

Pro Qt:

  • buenas interfaces gráficas de usuario que buscan

  • se puede cambiar la apariencia muy fácilmente mediante la creación de hojas de estilo

  • la Señal y ranuras mecanismo le informa sobre los eventos de interfaz de usuario como "botón presionado", etc.

  • buen sistema de diseño

  • integrado con el IDE de Visual Studio

  • moderno orientado a objetos C++ código, fácil de entender y utilizar

  • Qt Assistant (Muy buena documentación)

  • licencias relativamente liberal (LGPL)

  • Qt Designer - Herramienta de diseño WYSIWYG que puede usar para el diseño de formulario

  • Viene con una gran cantidad de otras funciones de C++ incluyendo XML, creación de redes, eventloops, roscado, acceso a base de datos, etc

contra Qt:

  • paso intermedio de la utilización del compilador MOC

Pro WPF:

  • si quiere las nuevas capacidades WPF de las nuevas plataformas Windows, WPF es el camino a seguir.
+0

Algunos de los pro de Qt también se aplican a Win32, cuando se usan desde Visual Studio. Integración con VS - verificación. Diseñador de formularios - consultar. Licencias liberales - duh. Mecanismo para capturar clics de botón - verificar. –

+0

Absolutamente amor Qt. El mejor hombre de la biblioteca GUI ha creado. –

17

Si está haciendo la gui solo para Windows, recomiendo encarecidamente WIN 32 Api. He realizado muchas aplicaciones en GTK +, pyGtk, FLTK y he aprendido Qt, MFC y SmartWin ++. Créame, pero me gusta Win32 Api lo mejor. Puede tener una curva de aprendizaje abrupta, pero para crear aplicaciones de Windows nativas, es la más rápida y la MEJOR. Y cuanto más complejo sea su programa, más fácil se compara Win32 Api con otros kits de herramientas.Y hay cosas que puedes hacer en Win32 Api, que no puedes hacer en ningún otro kit de herramientas.

probados:

tiempo de arranque (interfaz gráfica de usuario sencilla, con menús y botones): GTK + = 7 segundos; Qt = 4 segundos; WxWidgets = 3,32 segundos; FLTK = 1 segundo; Win32 Api = 0,34 segundos;

espacio tomado: Gtk + = 132 kb; Qt = 4,5 mb; WxWidgets = 4.5 mb; FLTK = 54 kb; Win32 Api = 6.5 kb;

+0

¿Estos tamaños de archivo tenían o no símbolos de depuración? – user877329

+0

¿Podría explicar por qué es tan mejor (que no sea el rendimiento)? especialmente ¿por qué cuanto más complejo es el programa, más fácil se compara con otros kits de herramientas? – MasterMastic

Cuestiones relacionadas