Cómo crear aplicaciones GUI en el escritorio de Linux con PyGObject - Parte 1

Cómo crear aplicaciones GUI en el escritorio de Linux con PyGObject - Parte 1

La creación de aplicaciones en Linux se puede hacer utilizando diferentes formas, pero hay formas limitadas de hacer, por lo que el uso de los lenguajes y bibliotecas de programación más simples y funcionales, es por eso que vamos a echar un vistazo rápido sobre la creación de aplicaciones bajo el Linux. Desktop Uso de la biblioteca GTK+ con lenguaje de programación de Python que se llama "Pygobject".

Pygobject Utiliza la introspección de gobect para crear vinculación para lenguajes de programación como Python, Pygobject es la próxima generación de PyGTK, puede decir que PyGObject = Python + GTK3.

Crear aplicaciones GUI en Linux - Parte 1

Hoy, comenzaremos una serie sobre la creación de aplicaciones GUI (interfaz gráfica de usuario) en el escritorio de Linux usando la biblioteca GTK+ y Pygobject Lenguaje, la serie cubrirá los siguientes temas:

Parte 1: Cómo crear aplicaciones GUI en Linux Desktop con PyGObject Parte 2: Creación de aplicaciones PyGobject más avanzadas en Linux Parte 3: Cree sus propias aplicaciones 'navegador web' y 'Recordadora de escritorio' con PyGObject Parte 4: Packaging Pygobject Programas para el escritorio de Linux Parte 5: Traducir aplicaciones de pygobject a diferentes idiomas
Sobre Python

En primer lugar, debes tener algunos conocimientos básicos en Python; Pitón es un lenguaje de programación muy moderno y fácil de usar. Es uno de los lenguajes de programación más famosos del mundo, utilizando Python, podrá crear muchas excelentes aplicaciones y herramientas. Puede tomar algunos cursos gratuitos como los de Codeacademy.com o puede leer algunos libros sobre Python en:

Acerca de GTK+

Gtk+ Es un conjunto de herramientas de plataforma cruzada de código abierto para crear interfaces gráficas de usuarios para aplicaciones de escritorio, se inició por primera vez en 1998 como un kit de herramientas GUI para el GIMP, más tarde, se utilizó en muchas otras aplicaciones y pronto se convirtió en una de las bibliotecas más famosas Para crear GUI. GTK+ se lanza bajo la licencia LGPL.

Creación de aplicaciones GUI en Linux

Hay 2 formas de crear las aplicaciones que usan GTK+ y Python:

  1. Escribir la interfaz gráfica utilizando solo el código.
  2. Diseño de la interfaz gráfica utilizando el "Claro"Programa; Que es una herramienta rad para diseñar gtk+ interfaces fácilmente, Glade genera la GUI como un archivo XML que se puede usar con cualquier lenguaje de programación para construir la GUI, después de exportar el archivo XML de la GUI, podremos vincular el archivo XML con nuestro programa para hacer los trabajos que queremos.

Explicaremos en ambos sentidos en breve.

La forma de solo código

Escribir la GUI usando el código solo puede ser un poco difícil para el programador de novatos y mucho tiempo, pero al usarlo, podemos crear GUI muy funcionales para nuestros programas, más de lo que creamos utilizando algunas herramientas como Glade.

Tomemos el siguiente ejemplo.

#!/usr/bin/python #-*-codificación: UTF-8-*-De GI.Repositorio Importar clase GTK OurWindow (GTK.Ventana): def __init __ (self): gtk.Ventana.__init __ (self,) gtk.Ventana.set_default_size (self, 400,325) gtk.Ventana.set_position (self, gtk.Puente de la ventana.Centro) botón1 = gtk.Botón ("Hola, mundo!") botón 1.conectar ("Haga clic", Self.Cuando Button1_clicked) Self.Agregar (botón1) def whenbutton1_clicked (self, botón): imprimir "Hola, mundo!"Window = ourwindow () ventana.Connect ("Eliminar el evento", GTK.Main_Quit) Ventana.show_all () gtk.principal() 

Copie el código anterior, péguelo en un "prueba.py"Archivo y establecer 755 permiso en la prueba.archivo py y ejecutar el archivo más tarde usando "./prueba.py", Eso es lo que obtendrás.

# prueba nano.prueba de py # chmod 755.py # ./prueba.py 
Hola guión del mundo

Al hacer clic en el botón, ve el "Hola Mundo!"Forma impresa en la terminal:

Prueba de script de Python

Permítanme explicar el código en una explicación detallada.

  1. #!/usr/bin/python: La ruta predeterminada para el intérprete de Python (versión 2.7 en la mayoría de los casos), esta línea debe ser la primera línea en cada archivo de Python.
  2. # -* -Codificación: UTF -8 -*-: Aquí establecemos la codificación predeterminada para el archivo, UTF-8 es el mejor si desea admitir idiomas que no son de inglés, déjelo así.
  3. de GI.Repositorio importar gtk: Aquí estamos importando la biblioteca GTK 3 para usarla en nuestro programa.
  4. Clase Ourwindow (GTK.Ventana): Aquí estamos creando una nueva clase, que se llama "ourwindow", también estamos configurando el tipo de objeto de clase en un "GTK.Ventana".
  5. def __init __ (yo): Nada nuevo, estamos definiendo los componentes principales de la ventana aquí.
  6. Gtk.Ventana.__init __ (self, title = "My Hello World Program"): Estamos utilizando esta línea para establecer el título "My Hello World Program" en la ventana "Ourwindow", puede cambiar el título si lo desea.
  7. Gtk.Ventana.set_default_size (self, 400,325): No creo que esta línea necesite explicación, aquí estamos configurando el ancho y la altura predeterminados para nuestra ventana.
  8. Gtk.Ventana.set_position (self, gtk.Puente de la ventana.CENTRO): Usando esta línea, podremos establecer la posición predeterminada para la ventana, en este caso, la configuramos en el centro usando el "GTK.Puente de la ventana.Parámetro de centro ", si lo desea, puede cambiarlo a" GTK.Puente de la ventana.Mouse ”para abrir la ventana en la posición del puntero del mouse.
  9. botón1 = GTK.Botón ("Hola, mundo!"): Creamos un nuevo GTK.Botón, y lo llamamos "Button1", el texto predeterminado para el botón es "Hola, mundo!", Puede crear cualquier widget GTK si lo desea.
  10. botón 1.conectar ("hacer clic", self.Cuando Button1_clicked): Aquí estamos vinculando la señal "haciendo clic" con la acción "WhenButton1_clicked", de modo que cuando se hace clic en el botón, se activa la acción "WhenButton1_clicked".
  11. ser.Agregar (botón 1): Si queremos que aparezcan nuestros widgets GTK, tenemos que agregarlos a la ventana predeterminada, esta línea simple agrega el widget "Button1" a la ventana, es muy necesario hacer esto.
  12. def whenbutton1_clicked (yo mismo, botón): Ahora estamos definiendo la acción "WhenButton1_clicked" aquí, estamos definiendo lo que sucederá cuando se haga clic en el widget "Button1", el parámetro "(Self, Button)" "es importante para especificar el tipo de objeto principal de la señal.
  13. Imprimir "Hola, mundo!": No tengo que explicar más aquí.
  14. ventana = ourwindow (): Tenemos que crear una nueva variable global y establecerla en la clase OurWindow () para que podamos llamarla más tarde usando la biblioteca GTK+.
  15. ventana.Connect ("Delete-Event", GTK.Main_quit): Ahora estamos conectando la señal de "Evento de eliminación" con el "GTK.Acción Main_Quit ", esto es importante para eliminar todos los widgets después de cerrar nuestra ventana del programa automáticamente.
  16. ventana.mostrar todo(): Mostrando la ventana.
  17. Gtk.principal(): Ejecutando la biblioteca GTK.

Eso es todo, fácil no? Y muy funcional si queremos crear algunas aplicaciones grandes. Para obtener más información sobre la creación de interfaces GTK+ utilizando la forma de solo código, puede visitar el sitio web oficial de documentación en:

Tutoriales de Python GTK3

The Glade Designer Way

Como dije al comienzo del artículo, Glade es una herramienta muy fácil para crear las interfaces que necesitamos para nuestros programas, es muy famoso entre los desarrolladores y se crearon muchas interfaces de excelentes aplicaciones utilizándolo. De esta manera se llama "desarrollo rápido de aplicaciones".

Debe instalar Glade para comenzar a usarlo, en Debian/Ubuntu/Mint Run:

$ sudo apt-get install Glade 

En Redhat/Fedora/Centos, Run:

# yum install Glade 

Después de descargar e instalar el programa, y ​​después de ejecutarlo, verá los widgets GTK disponibles a la izquierda, haga clic en "ventana"Widget para crear una nueva ventana.

Crear un nuevo widget

Notarás que se crea una nueva ventana vacía.

Nuevo widget de ventana

Ahora puede agregarle algunos widgets, en la barra de herramientas a la izquierda, haga clic en el "botón"Widget, y haga clic en la ventana vacía para agregar el botón a la ventana.

Agregar widget

Notarás que la identificación del botón es "botón 1", Ahora consulte la pestaña de señales en la barra de herramientas correcta y busque el"hecho clic"Signal and Enter"botón1_clicked" bajo ello.

Propiedades del botón Pestaña de señales

Ahora que hemos creado nuestra GUI, exportémosla. Clickea en el "Archivo"Menú y elige"Ahorrar", Guarde el archivo en su directorio de inicio en el nombre"mi programa.claro"Y salir.

Exportación de widget

Ahora, crea un nuevo "prueba.py"Archivo e ingrese el siguiente código dentro de él.

#!/usr/bin/python #-*-codificación: UTF-8-*-De GI.Repositorio Importación de clases GTK: DEF Button_1Clicked (Self, Button): Imprimir "Hola, mundo!"Builder = GTK.Constructor () constructor.add_from_file ("myprogram.glade ") constructor.Connect_Signals (Handler ()) OurNewButton = Builder.get_object ("Button1") OurNewButton.set_label ("Hola, mundo!") Window = Builder.get_object ("Window1") Ventana.Connect ("Eliminar el evento", GTK.Main_Quit) Ventana.show_all () gtk.principal() 

Guardar el archivo, darle 755 permisos como antes y ejecutarlo usando "./prueba.py", Y eso es lo que obtendrás.

# prueba nano.prueba de py # chmod 755.py # ./prueba.py 
Hello World Window

Haga clic en el botón y notará que el "Hola Mundo!"La oración se imprime en la terminal.

Ahora explicemos las cosas nuevas:

  1. manejador de clase: Aquí estamos creando una clase llamada "Handler" que incluirá las definiciones para las acciones y señales, creamos para la GUI.
  2. constructor = gtk.Constructor(): Creamos una nueva variable global llamada "Builder", que es un GTK.Widget de constructor, esto es importante para importar el .archivo glade.
  3. constructor.add_from_file ("myprogram.claro"): Aquí estamos importando el "myprogram.Archivo de Glade ”para usarlo como GUI predeterminado para nuestro programa.
  4. constructor.Connect_signals (Handler ()): Esta línea conecta el .Archivo glade con la clase de controlador, de modo que las acciones y las señales que definimos bajo la clase de "controlador" funcionan bien cuando ejecutamos el programa.
  5. nuestroNewButton = Builder.get_object ("Button1"): Ahora estamos importando el objeto "Button1" desde el .Glade File, también lo estamos transmitiendo a la variable global "OurnewButton" para usarlo más tarde en nuestro programa.
  6. nuestro NEWBUTTON.set_label ("Hola, mundo!"): Usamos el "set.Método de etiqueta "para establecer el texto del botón predeterminado en el" hola, mundo!" oración.
  7. ventana = constructor.get_object ("Window1"): Aquí llamamos al objeto "Window1" desde el .archivo glade para mostrarlo más adelante en el programa.

Y eso es! Has creado con éxito su primer programa en Linux!

Por supuesto, hay muchas cosas mucho más complicadas que hacer para crear una aplicación real que haga algo, por eso le recomiendo que eche un vistazo a la API GTK+ Documentation y Gobject AT:

  1. Manual de referencia GTK+
  2. Referencia de API de Python Gobject
  3. Referencia de pygobject

¿Ha desarrollado alguna aplicación antes en el escritorio de Linux?? ¿Qué lenguaje y herramientas de programación han utilizado para hacerlo?? ¿Qué opinas sobre la creación de aplicaciones usando Python & GTK 3?