[C con Clase] Realizar gráficos con c++ en linux

Miguel Olave molavec en gmail.com
Mie Abr 21 06:06:27 CEST 2010


Debido que que se veían bonitos los gráficos del QWT y como quería saber 
como ocupar el Qt4 y el Qt creator seguí esa línea y vi que también 
estaba disponible un paquete con documentación y ejemplos, así que 
después de marearme un poco y que no me compilara porque no encontraba 
las librerías .h (cosa que pensé que iba a hacer por defecto al instalar 
el paquete con synaptics), me di cuenta que había que utilizar unos 
archivos .pri y .pro.Y FUNCIONÓÓÓÓÓ!!! Muchas Gracias Jordenys!!! y 
obviamente a Ricardo Jorge y José por sus respuestas, pues igual voy a 
picar por esas librerías más adelante para comparar.

En fin, ese asunto (el de que no encontrará las librerías) reavivo una 
duda que tengo desde hace mucho tiempo desde que programo C en linux 
(hace tiempo que no lo hacía en serio ya que estaba usando JAVA).

1.- Ahora cuando hago un programa en las que incluyo una librería 
estándar y compilo las detecta y utiliza sin problemas. Sin embargo, no 
siempre fue así. En versiones anteriores de Ubuntu trataba de compilar 
un programa y no las detectaba. Después de mucho rebuscar pude 
incluirlas al agregarlas a la variable de entorno $CPPFLAGS, pero debía 
hacer eso siempre que abria un bash. ¿Como es que C o C++ detecta la 
ubicación de dichas librerías el gcc? ¿Se setea una variable de entorno 
que desconozco?

Nota: Al buscar alguna de las estándar me indica que están en este dir:
> angel$ whereis math.h
> math: /usr/include/math.h

2.- Ahora como necesito usar un librerías Qwt pensé que bastaba 
instalarlas con el Synaptic y sería todo maravilloso y las identificaría 
inmediatamente, pero no fue así. Mi idea para comenzar era instalar las 
librerías Qt + Qt creator + qwt y pronerme a programar, pero al final 
tuve que usar un archivo .pri que venía con el ejemplo que crea muchas 
Variables para indicar las rutas (las librerías del qwt estaban 
finalmente en "/usr/include/qwt-qt4"). Ahora en caso de querer usar un 
Makefile propio (y no ocupar el Qt Creator) ¿cómo puedo incluirlas de 
modo que el compilador las considere, como considera a las librerías 
estándar? (Notesé que el archivo del ejemplo las incluía con #include 
<libreria_qwt.b> y no con las comillas "").

Esta última duda me a traído tenido perdiendo el tiempo desde hace mucho 
y siempre termino rindiéndome a incluirlas una por una desde un Makefile 
o el los mismos programas con #include "<ruta>/archive.h". Desde hace 
mucho en otros programas que he tenido que hacer eso o simplemente 
compilar. Si alguien puediese responder ésto me quitaría una espina que 
tengo clavada de hace tiempo.

Atte.
Miguel.





El 20/04/2010 20:27, Miguel Olave escribió:
> Primero que nada quisiera agradecer sus pronta respuestas a todos ya 
> que muchas son alternativas que "San Google" no fue capaz de entregarme.
> Apenas, pueda les comentó como me fue y cual me resultó.
>
> Miguel.
>
> Jordenys Pérez Feria wrote:
>> Hola Miguel, trabajo en ambientes donde uno de los requisitos 
>> primarios para todos nuestros productos es que las aplicaciones deben 
>> ser multiplataforma (deben funcionar en windows, linux y mac). Este 
>> problema lo resolvemos usando bibliotecas como QT4, que cumple con el 
>> requerimiento de miltiplataforma, excelente rendimiento, está 
>> desarrollada en C++, buena documentación, lgpl, muchas herramientas 
>> para el desarrollo, etc.
>>
>> Para el diseño de una gráfica como la que quieres (2d) en qt4 puedes 
>> heredar de QWidget (clase base para todos los controles gráficos 
>> buttons, lineEdits, etc..) y reimplementar la función virtual void 
>> paintEvent ( QPaintEvent * event )
>>
>> Bueno, los detalles los puedes consultar en la documentación de la 
>> biblioteca.
>>
>> Para esta biblioteca existen una serie de componentes gráficos ya 
>> desarrollados, Gráficos de barra, puntos, pastel, etc... que creo 
>> resuelven tú problema. La biblioteca la puedes descargar de la 
>> siguiente dirección:
>> http://qwt.sourceforge.net/
>>
>> o instalar desde el repositorio de ubuntu “libqwt5-qt4-dev”
>>
>> Para comenzar a trabajar puedes instalar un paquete del repositorio 
>> oficial de ubuntu "qtcreator". Este es un IDE de desarrollo muy 
>> ligero y bastante aceptable, con este paquete se instala 
>> automáticamente las bibliotecas necesarias para trabajar y la 
>> documentación.
>>
>> Si usas otro IDE de desarrollo pues simplemente instalas libqt4-dev y 
>> qt4-dev-tools.
>>
>> El sitio oficial de la biblioteca http://qt.nokia.com/
>>
>> Saludos, Jordenys.
>>
>>
>>
>> ----- Mensaje original -----
>> De: "Miguel Olave" <molavec en gmail.com>
>> Para: Cconclase en listas.conclase.net
>> Enviados: Lunes, 19 de Abril 2010 22:00:51 (GMT-0500) Auto-Detected
>> Asunto: [C con Clase] Realizar gráficos con c++ en linux
>>
>> Hola compañeros.
>>
>>     Voy a tratar de ser bien simple en mi solicitud. Lo que necesito 
>> es saber que librerías podría ocupar para realizar algunos gráficos 
>> con C++. Por lo que he leído obviamente debo hace usos de librerías 
>> de GUI que dependan del sistema operativo pero estoy un poco perdido 
>> y lo que quiero hacer puede que sea simple para quien lo haya 
>> realizado alguna vez y me puedan ahorrar mucho tiempo en la búsqueda.
>>
>> Necesito hacer dos gráficos con algunos arreglos:
>>
>> //este tene que ser una linea continua
>> x[i]=sin(i*2*pi*800/8000.0);
>> t[i]={/*un vector para el tiempo*/}
>>
>> //Este tiene que ser un gráfico de espectro de frecuencias, o sea,
>> //para cada punto una linea vertical
>> magnitud=(sqrt(y[i2].real*y[i2].real+y[i2].img*y[i2].img))*escalamiento;
>> f[i]={/*un vector para la frecuencia*/}
>>
>> Como ven no es mucho distinto de lo que pueda hacer en matlab, pero 
>> me da lata tener que guardar los datos en un txt y gráficar en 
>> Matlab. Además, como uso LINUX para c++ tengo que cambiar de sistema 
>> operativo cada vez que quiero gráficar.
>>
>> Datos relevantes:
>>
>> - Uso Ubuntu (gnome).
>> - Leí que las librerías OpenGL servían para varios Sistemas Operativos.
>>
>>
>> De antemano, muchas gracias por sus consejos.
>>
>>
>> Miguel Angel Olave.
>>
>> _______________________________________________
>> Lista de correo Cconclase Cconclase en listas.conclase.net
>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net 
>>
>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>>
>> _______________________________________________
>> Lista de correo Cconclase Cconclase en listas.conclase.net
>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net 
>>
>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>





Más información sobre la lista de distribución Cconclase