- #include <gtkmm.h>
- #include <goocanvasmm.h>
- #include <cairomm/cairomm.h>
- #include <iostream>
- #include <gdkmm-2.4/gdkmm.h>
- using namespace Goocanvas;
- using namespace Glib;
- using namespace std;
- using Gdk::InterpType;
- // Clase imagen personalizada
- class Imagen: public Goocanvas::Image{
- protected:
- Imagen(const Glib::RefPtr<Gdk::Pixbuf>& pixbuf, double x = 0.0, double y = 0.0):
- Goocanvas::Image(pixbuf,x,y){ }
- public:
- static Glib::RefPtr<Imagen> create(double x = 0, double y = 0, double width = 0, double height = 0){
- // Crea un buffer de pixeles a partir del fichero de la imagen
- Glib::RefPtr<Gdk::Pixbuf> pb= Gdk::Pixbuf::create_from_file("toroid.png",width,height,true) ;
- // Crea una imagen a partir del pixbuf
- Imagen *imagen=new Imagen(pb,x,y);
- // Asigna la posición de la imagen
- imagen->set_bounds(Bounds(x,y,x+width,y+height));
- // Retorna la imagen creada
- return Glib::RefPtr<Imagen>(imagen);
- }
- };
- // ventana principal
- class Simple : public Gtk::Window
- {
- public:
- Simple(){
- // Asigna un tamaño a la plantilla raiz
- lienzoImagen.set_size_request(800, 800);
- // Establece la ubicación de la plantilla en la pantalla
- lienzoImagen.set_bounds(0, 0, 800, 800);
- // Crea un imagen y lo asigna a lienzo, recuerda que
- // el lienzoImagen solo es el contenedor
- imagen = Imagen::create(100, 100, 450, 450);
- // Asigna el color interno del imagen
- imagen->property_fill_color().set_value("blue");
- // Asocia la señal de clickeo del imagen con el método
- // imagen_clicked() del objeto actual
- imagen->signal_button_press_event ().connect (sigc::mem_fun (this,
- &Simple::imagen_clicked));
- // Retorna el item root de la plantilla
- RefPtr<Item> root = lienzoImagen.get_root_item();
- // Agrega el imagen a la plantilla
- root->add_child(imagen);
- // Agrega el lienzo a la ventana actual
- add(lienzoImagen);
- show_all_children();
- }
- /** Método que se ejecuta cuando se clickea el imagen **/
- bool imagen_clicked(const RefPtr<Item>&, GdkEventButton*){
- cout << "Has clickeado el imagen" << endl ;
- return true ;
- }
- Glib::RefPtr<Imagen> m_item;
- protected:
- // Lienzo contenedor del imagen
- Canvas lienzoImagen;
- // Imagen a mostrar
- RefPtr<Imagen> imagen;
- };
- int main(int argc, char* argv[]){
- Gtk::Main app(&argc, &argv) ;
- // Inicializa goocanvas. Es necesario en todo programa que use esta biblioteca
- Goocanvas::init("Ejemplo simple goocanvasmm", "1.0", argc, argv) ;
- Simple ventana ;
- Gtk::Main::run(ventana) ;
- }
viernes, 16 de noviembre de 2012
Imagenes con goocanvasmm
Este es un mini tutorial de imagenes con goocanvasmm
sábado, 27 de octubre de 2012
Usar librerías boost en eclipse
Antes que nada deberás tener instaladas las librerías, para ella puedes instalarla desde tu gestor de software. Las básicas son:
boost
boost-system
boost-devel
En el caso de Fedora existen varios paquetes para usos específicos (expresiones regulares, timers, etc). Recomiendo instalarlos todos. Estos son algunos:
Luego de instalar los paquetes entras en eclipse e entras en el fichero objects.mk de tu proyecto
y agregas el string -lboost_system-mt a la variable LIBS.
Quedaria algo asi:
LIBS := -lglib-2.0 -lboost_system-mt
Nota: Algunas características de boost necesitan links a otras librerías. Por ejemplo si deseas usar timers debes agregar -lpthread.
Este proceso tambien se puede hacer desde el dialogo de opciones del proyecto:
C/C++ Build -> Settings -> GCC C++ Linker -> Libraries
Allí agregas la biblioteca deseada.
boost
boost-system
boost-devel
En el caso de Fedora existen varios paquetes para usos específicos (expresiones regulares, timers, etc). Recomiendo instalarlos todos. Estos son algunos:
Luego de instalar los paquetes entras en eclipse e entras en el fichero objects.mk de tu proyecto
y agregas el string -lboost_system-mt a la variable LIBS.
Quedaria algo asi:
LIBS := -lglib-2.0 -lboost_system-mt
Nota: Algunas características de boost necesitan links a otras librerías. Por ejemplo si deseas usar timers debes agregar -lpthread.
Este proceso tambien se puede hacer desde el dialogo de opciones del proyecto:
C/C++ Build -> Settings -> GCC C++ Linker -> Libraries
Allí agregas la biblioteca deseada.
sábado, 20 de octubre de 2012
Pelar un cable ffc
He buscado en mil foros y no consegui como c... podia pelar un cable ffc (Flex). En mi desesperación para exponer el cobre del cable ffc utilice un dremel con punta de lija y funcionó perfecto. Solo hay que cuidarse de no afincar el cable contra el dremel.
miércoles, 26 de septiembre de 2012
Programar un Arduino Pro Mini con un Uno / Duemilanove
Primero debe quitarle el atmega al Uno o Duemilanove
Las conexiones son las siguientes:
Las conexiones son las siguientes:
Duemilanove | Pro Mini
Reset | GRN
3V3 | VCC
GND | GND
TX | TX
RX | RX
domingo, 9 de septiembre de 2012
Configuración multimonitor en GNU / Linux con KDE
Si deseamos un entorno con con varios escritorios asignados a distintos monitores corriendo bajo Linux, la mejor opción es KDE.
Nos permite ajustar la configuración en un tris. Este es mi escritorio
Aunque en la captura aparezca como una sola imagen, en realidad son dos monitores cada uno con un escritorio distinto y una barra de tareas especifica. El relleno negro que se observa en el escritorio de la derecha no se ve en el monitor, puesto que solo es un relleno ocasionado por las distintas resoluciones con que trabajan mis dos monitores.
La configuración de los monitores (clonado, extendido etc) se hace directamente desde el panel de control que ofrezca el fabricante de su tarjeta gráfica (AMD | Ati, Nvidia...) en mi caso AMD Hd 6870.
En este caso es un monitor extendido.
Para que en el gestor de tareas muestre solo las aplicaciones que están en el monitor actual ve a las preferencias del gestor de tareas (clic secundario en él) y luego selecciona todos los check buttons de los filtros, menos el ultimo. Has esto por cada gestor de tareas que poseas.
Así se ve mi pc trabajando con doble monitor bajo Fedora 17 x64 con KDE
Etiquetas:
actual,
AMD,
aplicaciones,
escritorio,
Fedora,
gestor,
kde,
linux,
monitor,
multi,
multimonitor,
multiple,
nvidia,
tareas,
ventana,
windows
NIC dedicada a una VM en Virtualbox
A algunas personas nos pasa el caso en donde poseemos dos conexiones a internet y deseamos aprovecharlas. Para ello he hecho varias configuraciones con bonding pero sigue sin convencerme. Esperaré a que fedora 18 sea liberada para probar con libteam y teamd.
Mientras tanto, he ideado la siguiente configuración para dar uso a mis dos interfaces.
Tengo dos NIC's alambicas. Una conectada a un range extender con el cual "pido prestado" el super wifi de algún vecino (2 Mb/s) y la otra a un servicio adsl estándar (1 Mb/s). Con las dos suman 3 megas de velocidad, que aquí en Venezuela es una barbaridad.
A la maquina virtual (cliente) le asigné la conexión de 2 Mb/s y al host la de 1 Mb/s.
Para ello:
- Abrí la configuración de la maquina virtual
- Luego en el menu "Red" seleccioné adaptador puente y en el campo nombre debes selecciona la interfaz que será tu dedicada (en mi caso se llama "p1p1"). Le das en ok y listo.
Si usted tiene instalado algún monitor de red notará que ambas NIC's están trabajando.
domingo, 2 de septiembre de 2012
Ver el PID de una aplicación (ventana)
Si necesita saber el pid de una aplicación, asociada a una ventana, puede usar el comando xprop.
Si lo ejecuta en un terminal y entonces el puntero cambiara a una cruz y le dará clic a la ventana de la aplicación deseada.
En el caso de la imagen el PID seria 2620.
Si no quieres buscar entre tanta letra puedes filtrarlo con xprop | grep "PID"
Existen otras alternativas para buscar el pid como:
pgrep nombredelproceso
o el clásico
ps -e | grep nombredelproceso
Si lo ejecuta en un terminal y entonces el puntero cambiara a una cruz y le dará clic a la ventana de la aplicación deseada.
En el caso de la imagen el PID seria 2620.
Si no quieres buscar entre tanta letra puedes filtrarlo con xprop | grep "PID"
Existen otras alternativas para buscar el pid como:
pgrep nombredelproceso
o el clásico
ps -e | grep nombredelproceso
Pero para gustos colores.
Suscribirse a:
Entradas (Atom)













