Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Interfaz grafica simple en c++

Estas en el tema de Interfaz grafica simple en c++ en el foro de C/C++ en Foros del Web. Buenas, recientemente he estado desarrollando un codigo, para el que he pedido ayuda por aca un par de veces. Ahora que estoy en la parte ...
  #1 (permalink)  
Antiguo 27/10/2014, 21:40
 
Fecha de Ingreso: abril-2012
Mensajes: 12
Antigüedad: 12 años
Puntos: 0
Exclamación Interfaz grafica simple en c++

Buenas, recientemente he estado desarrollando un codigo, para el que he pedido ayuda por aca un par de veces. Ahora que estoy en la parte final, me han exigido incorporar una interfaz grafica. ¿El problema? Hasta ahora jamas habia ni oido hablar de una interfaz grafica en toda la carrera, y ahora me piden hacer una completamente de la nada, y sin ningun conocimiento de como.

Hace unas pocas horas descargue QT (Tambien he comenzado a descargar visual studio, aunque aun no termina de descargarse) y he estado dandole vueltas, pero la verdad es que estoy a ciegas, no se absolutamente nada sobre como hacer una interfaz grafica. Lo que necesito es bastante simple (O al menos suena bastante simple), necesito crear un menu que pida algunos datos, los almacene para que el codigo que ya he hecho los procese, y luego muestre los resultados. La cosa va asi:

-Primero, presento dos opciones, el usuario debe elegir una (Supongo que crear dos botones es lo mas facil)
-Luego, en la primera opcion el usuario debe hacer una unica entrada de un string, necesito que esa entrada quede guardada en un string. Si elige la segunda opcion, se le piden multiples datos, alguna ventanita iterativa que vaya apareciendo en cada "cout" es lo mas facil que se me ocurre
-Y por ultimo, debo mostrar los resultados de el procesamiento de los datos, texto simple, sin graficas ni muchos adornos.

De verdad espero que puedan asesorarme porque estoy a oscuras y al parecer nos estan enviando al matadero y sin ningun tipo de remordimiento ni verguenza.

PD: He estado viendo un tutorial en youtube de como usar QT, pero no salen cosas especificas que necesito, como por ejemplo como hacer que cuando el usuario elija un boton, eso active cierta funcion o envie cierto valor a un if. O como hacer que luego de que la ventana principal salga y elijan la opcion, aparezca otra ventana de dialogo para que introduzcan la informacion que requiero. Este tipo de cosas tan especificas no se encuentran facilmente

Última edición por tyrax; 27/10/2014 a las 21:49 Razón: Post Data
  #2 (permalink)  
Antiguo 27/10/2014, 22:53
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Interfaz grafica simple en c++

No entiendo nada de Qt. Se que es muy poderosa y si aprendes a manejarla no te va defraudar en absoluto.

Lo que te puedo indicar es una libreria que se usa para crear jueguitos y sirve tambien para lo que dices(crear interfaces gráfica simples). Ademas es relativamente fácil una vez pillas el rollito.

Se llama miniwin y esta en español. Digo las funciones.
Con miniwin todo funciona en sistema de coordenadas desde la esquina superior izquierda de la pantalla que es la coordenada 0,0. O sea X0 Y0, a mas x mas te desplazas hacia la izquierda de la pantalla y a mas Y mas te desplazas hacia abajo.

Puedo crear un rectángulo que bien puede ser de 30X70 pixeles cuadrados con un color solido, a una distancia de la izquierda de 20 pixeles en el eje X, y de otros 20 pixeles en el eje Y mas o menos.

Para que lo entiendas se trata de crear algo como eso:


Luego existe funciones que te dicen si as pulsado alguna tecla del ratón y también te dice las coordenadas del mismo.

Si preparas para que al hacer click con el ratón y el puntero coincida dentro del rectángulo ejecutaría lo que se pide.

El problema es que se trata de programación orientada a juegos y todo el trabajo sucio lo harías tu y no te daría todo masticado como Qt por ejemplo. Pero creo que seria relativamente rápido ademas seria un puntazo. XDD

Si no quieres pasar horas o días aprendiendo Qt a menos que encuentres un santo grial, te dejo la librería y una serie de vídeos del autor que explica el funcionamiento de la misma.

hacer un rectángulo en pantalla es algo tan tonto como hacer algo así:

color(verde);
rectangulolleno(100, 80,20, 50);

limpiarPantalla();
pintar();

Eso pintaría un rectángulo verde mas o menos como el de la imagen en la coordenada X100 Y80 de la pantalla, de un tamaño de 20 por 50.

Te dejo los vídeos y a lo mejor si necesitas ayuda para prepara los iconos y todo eso te puedo ayudar.

Las funciones están descritas aquí:
http://miniwin.readthedocs.org/en/la...ilizacion.html

Y aquí están ejemplos de como usarla:
http://www.minidosis.org/#/
Vas abajo al fondo de la pagina, ahí pone vídeos de jueguitos como snake, tetris, etc, etc.. Hay uno de introducción a miniwin y te recomiendo que lo veas junto al de snake al menos.

Si te decides por dar una oportunidad a miniwin y quieres que te eche una mano es solo decir.
A ti te va interesar el manejo de teclas, creación de rectángulos, letras y poco mas.

Si puedes usar codeblocks podemos cambiar proyectos enteros por skype o facebook por ejemplo. Tiene que ser codeblocks por que miniwin se lleva de tortas con visual studio, aunque se de un usuario que lo logro no hace mucho instalarlo.
El user que mencioné entro en contacto con el desarrollador y ha pedido instrucciones de como instalarlo en VS hace escasos temas atrás en este mismo foro, y el dejo las instrucciones. Se puede buscar aun, la cosa es que no uso Visual studio por eso codeblocks seria el ideal, y ademas si optas por miniwin el autor tiene un proyecto base listo para codeblocks que sirve de punto de partida rápido listo para descarga aquí: http://miniwin.readthedocs.org/en/la...ra-code-blocks

Bueno... echa una mirada en la librería y dime que te parece. Si necesitas ayuda escribe aquí y lo antes que pueda contesto, si necesitas quedamos para hacer algo si así lo deseas.

Se que Qt es muy buena pero es muy compleja a la vez. Todo depende del tiempo que tengas.

Te aconsejo que después de eso aprendas Qt y lo hagas con tiempo para no pillarte los dedos. XD

Si alguien te puede echar una mano en QT también seria fenómeno.

Bueno... te dejo ya que ya estoy muy pesado jaja
Suerte
  #3 (permalink)  
Antiguo 28/10/2014, 02:11
 
Fecha de Ingreso: abril-2012
Mensajes: 12
Antigüedad: 12 años
Puntos: 0
Respuesta: Interfaz grafica simple en c++

Muchas gracias vangodp! La verdad es que tu idea me parece bastante buena, ahora mismo estoy descargando el codeblocks y el miniwin. Parece un codigo bastante facil de implementar, y eso me vendria perfecto, porque me queda muy poco tiempo para terminar con esto. Me encantaria si pudieras ayudarme un poco con esto por skype, te lo agradeceria con el alma. Te dejare mi ID por mensaje privado

Emm, bueno, mis mensajes no aparecen en bandeja de enviados, asi que te la dejo por aca. My skype es RealTyrax
  #4 (permalink)  
Antiguo 28/10/2014, 03:28
Avatar de jc_moj  
Fecha de Ingreso: septiembre-2009
Ubicación: Andalucía
Mensajes: 137
Antigüedad: 14 años, 7 meses
Puntos: 12
Respuesta: Interfaz grafica simple en c++

Hola

Cita:
Iniciado por tyrax Ver Mensaje
...Hace unas pocas horas descargue QT...
Yo llevo tiempo usando las librerías Qt y me parecen muy buenas, además son multiplataforma.

Al principio puede asustar un poco, ya que son complejas, pero una vez aprendes la base de cómo funcionan, es sencillo desarrollar con ellas.

Una cosa que me gusta mucho de ellas es la abundante y clara documentación que tienen, con multitud de ejemplos.

Pero bueno, todo depende de lo que quieras hacer, si es algo sencillo, igual te viene mejor miniwin que te propone @vangodp.

Cita:
Iniciado por tyrax Ver Mensaje
... por ejemplo como hacer que cuando el usuario elija un boton, eso active cierta funcion...
Eso, por ejemplo, se hace con las SIGNALS/SLOT, es decir, tienes que conectar la señal que emite el botón al pulsarse con un SLOT (un método) que se ejecute cuando se pulsa el botón. Una vez entiendes el mecanismo de las señales/slots te resulta sencillo.

Saludos
  #5 (permalink)  
Antiguo 28/10/2014, 03:29
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Interfaz grafica simple en c++

Si tenéis dudas con Qt podéis preguntarme... no llego a nivel gurú pero me tengo que pegar todos los días con ello XD
  #6 (permalink)  
Antiguo 28/10/2014, 15:56
 
Fecha de Ingreso: abril-2012
Mensajes: 12
Antigüedad: 12 años
Puntos: 0
Exclamación Respuesta: Interfaz grafica simple en c++

Gracias a todos por sus respuestas! La verdad es que se que con QT probablemente quedaria mejor, ya que esta hecho para eso, pero lamentablemente no tengo el tiempo para aprenderlo, la entrega es mañana a medianoche, y ya llevo semanas trabajando en esto y aun no termino.

Estoy teniendo un problema, cuando llego a la parte en la que quiero que un usuario me de un string, no se como leerlo. Intento hacerlo leyendo letra a letra y concatenando en un string, pero no me esta funcionando. Que podre estar haciendo mal? Si alguien es capaz de decirme la traduccion de esto al qt, tambien me seria infinitamente util. Aca dejo parte del codigo:

Es un menu, si el usuario coloca 1, entra a la primera opcion, si coloca 2, entra a la segunda (esta parte no esta implementada aun), y con cualquier otra tecla finaliza el programa. Cuando entra a la primera opcion debo pedirle un string, ahi esta el problema;
Código:
string texto1, nombrearchivo;
char texto2[500];
cd2 P;
concatenador = "";

vredimensiona(600,600);
rectangulo(100, 200, 200, 235); //Codificar
texto(116,210,"Codificar");

rectangulo(400, 200, 500, 235); //Decodificar
texto(412,210,"Decodificar");

rectangulo(250, 100, 350, 135);
texto(282,110,"Salir");
refresca();
espera(1000);

mensaje("Presiona:\n\t1 para codificar.\n\t2 para decodificar.\n\tCualquier otra para salir.");
int menu = tecla();

while (menu == NINGUNA) {
    menu = tecla();
}

refresca();
if ((menu != 49) && (menu != 50)) { //49=1 y 50=2
	mensaje("Finalizando programa.");
	vcierra();
	return 0;
}
if (menu == 49) {
    texto1="";
    refresca();
    borra();
    char letrasola;

    mensaje ("Introduzca el texto a codificar: ");
    menu = tecla();

    while(menu!=ESCAPE){
        while (menu != ESCAPE){
            menu=tecla();
        }
        letrasola=' ';
        letrasola=letrasola+menu-32;
        texto1=texto1+letrasola;
        texto(100,100,texto1);
        refresca();
    }
}
mensaje(texto1);

Última edición por tyrax; 28/10/2014 a las 16:24
  #7 (permalink)  
Antiguo 29/10/2014, 22:05
 
Fecha de Ingreso: febrero-2014
Mensajes: 107
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Interfaz grafica simple en c++

Hola a todos, me parecio interesante este tema y yo tambien he manejado QT, tengo varios pdf de QT en ingles y español por si alguien le interesa; y si alguien puede tambien pasarme pdfs o paginas lo agradeceria, he leido que QT es muy potente, con esta herramienta desarrollaron aplicaciones como Skype y Google Earth.

y respecto a lo que dice vangodp, voy a hecharle una ojeada a miniwin, me parecio muy interesante y pues cuando aprenda podemos intercambiar proyectos

Etiquetas: c++, interfaz
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:41.