[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