studio - Una forma moderna y nativa de crear aplicaciones GUI WinAPI en C++
interfaz grafica en dev c++ (7)
Aquí hay algunos consejos:
No te encierres en C ++. C # y Java (por ejemplo) pueden interoperarse fácilmente con C / C ++. (A través de PInvoke o C ++ / CLI para el primero y JNI para el último). C ++ puede no ser el lenguaje ideal para escribir una GUI rápidamente.
Su requerimiento para "apariencia de ventanas nativas" es arbitrario y debe pensarlo. ¿Es eso realmente lo que necesitas?
Winforms. Es una tecnología más antigua pero todavía se usa ampliamente. Utiliza la API de lenguaje C ++ / CLI o C # (o cualquier .NET).
WPF, una API más reciente pero que será más difícil de manejar desde C ++, (mejor con C # o VB)
Uno de los muchos kits de herramientas de GUI disponibles en el mercado que tienen una API de C o C ++ (QT, GTK, wxWidgets, la VCL, ... lista aquí ). Algunos tienen miradas "nativas", otros no. Algunos tienen diseñadores, otros no. Algunos son gratis, otros no.
Primero, sé que esta es una pregunta bastante común, pero no pude encontrar la respuesta exacta que estoy buscando.
He hecho muchos proyectos en Java usando Swing. Comenzando simplemente codificando la GUI, y luego pasando a los diseñadores de GUI. Esto demostró ser una forma muy rápida y fácil de crear aplicaciones GUI.
Pero ahora, necesito moverme a C ++. Estoy empezando un proyecto que usa muchos recursos de HW (DirectX, OpenCV, etc.) Sé que hay bibliotecas de Java para estas tecnologías. Sin embargo, C ++ es definitivamente el camino correcto, considerando los aspectos internos de este proyecto.
Conozco bien los lenguajes C y C ++ de la programación MCU. Además, he leído muchos artículos sobre programación nativa de WinAPI, internos de Windows, etc. Creo que tengo suficientes conocimientos para comenzar. No quiero preocuparme mucho por el diseño de GUI, pero debe parecer apropiado.
Sé que hay pocas opciones básicas: Pure WinAPI, MFC, WTL, Qt ... Me encantaría que existiera algún tipo de herramienta de diseño GUI, pero según mi investigación, no lo hay. Existe el asistente de MFC que ayuda a crear una ventana básica, pero no es un diseñador. Lo más cercano que encontré fue Qt. Pero por lo que leí, no está utilizando WinAPI para dibujar, ya que en un futuro la apariencia de la aplicación escrita Qt puede diferir del aspecto nativo de Windows.
Entonces, para resumir, por favor, si tiene experiencia con la creación de aplicaciones nativas de Windows C ++ con GUI, ¿qué me recomendaría? Específicamente, ¿hay alguna herramienta o diseñador que me perdí?
(Estoy usando el profesional de Visual Studio 2010, ya que lo tengo gratis gracias al proyecto DreamSpark)
Dependiendo de qué tan estricta sea su definición, puede usar .NET Windows Forms o Windows Presentation Foundation y conectar la lógica desde C ++, C ++ / CLI y C #. Eso no sería una solución pura de C ++. De hecho, ni siquiera necesariamente recomendaría el uso de C ++ en esa situación. Simplemente usar C # sería más intuitivo y fácil de mantener. Sin embargo, WinForms y WPF tienen diseñadores de GUI bastante impresionantes.
La biblioteca de clases wxWidgets c ++ viene con un creador de pantalla .
Puede usar C ++ Builder XE2 (parte del IDE de Rad Studio), que incluye la VCL (Visual Component Library), la VCL es una envoltura sobre los controles de Windows (y también incluye controles personalizados) que aumentan la productividad del desarrollo.
Recientemente utilicé Qt4 y estuve muy satisfecho con la API. Lo encontré sencillo, bien documentado, y el código es extremadamente conciso.
Qt hace un muy buen trabajo emulando la apariencia del sistema operativo de destino (como @In silico señaló en los comentarios, Qt realmente dibuja todo por sí mismo y no usa componentes nativos) Independientemente, esto puede ser codificado a mano o visualmente a través de la GUI Editor en su IDE, Qt Creator . Si sigue esta ruta, le recomiendo que cree allí su proyecto GUI inicial (archivo .pro
) y luego lo importe a Visual Studio a través del complemento Qt Visual Studio .
También vale la pena mencionar los slots y las señales , el sistema de mensajes / eventos de Qt. Sí, es fundamental para la programación de la GUI, pero también podría ser extremadamente útil en el código de nivel inferior.
Espero que Qt funcione bien en su proyecto, pero como siempre, cree algunas pruebas simples para asegurarse de que las tecnologías funcionen juntas de manera factible.
Si necesita una interfaz de usuario simple, le recomiendo usar WTL: es una biblioteca simple, liviana y de solo encabezado, muy buena sobre WinAPI. En Visual Studio puede usar el diseñador de formularios para crear ventanas y usar clases WTL para implementar la interacción con el usuario. WTL tiene poca documentación pero WTL se parece a MFC.
Si quieres ricas posibilidades te recomiendo usar Qt. Es un marco de GUI muy poderoso con una gran comunidad.
VCL es una buena manera de ir Tiene una herramienta de diseño GUI (Embarcadero Rad Studio XE6), un desarrollador gui totalmente nativo para C ++ y Delphi.