Pitón

Cómo crear una aplicación simple en Python y GTK3

Cómo crear una aplicación simple en Python y GTK3
Este artículo explicará cómo crear una aplicación gráfica "Hello World" en Linux utilizando el lenguaje de programación Python 3 y el marco de la GUI GTK3. Todas las muestras de código del tutorial se prueban con Python 3.8.6 y GTK 3.24.23 en Ubuntu 20.10.

Instale los paquetes necesarios

Para crear una aplicación con Python 3 y GTK3, debe instalar enlaces de Python para las bibliotecas de GObject. Esto se puede hacer instalando el paquete PyGObject incluido en los repositorios de casi todas las principales distribuciones de Linux. Para instalar estas dependencias en Ubuntu, puede usar el siguiente comando:

$ sudo apt install python3 python3-gi

También puede compilar PyGObject a partir del código fuente disponible aquí.

Código completo de la aplicación Hello World

La muestra de código completo de una aplicación Hello World escrita en Python 3 y GTK3 se puede encontrar a continuación. Esta aplicación envía un mensaje de "Hola mundo !!"Notificación al escritorio al hacer clic en un botón.

importar gi
soldado americano.require_version ("Gtk", "3.0 ")
soldado americano.require_version ('Notificar', '0.7 ')
de gi.importación de repositorio Gtk
de gi.Importar repositorio Notificar
clase MyWindow (Gtk.Ventana):
def __init __ (yo):
Gtk.Ventana.__init __ (self, title = "Hola mundo")
Gtk.Ventana.set_default_size (self, 640, 480)
Notificar.init ("Aplicación GTK3 simple")
uno mismo.caja = Gtk.Caja (espaciado = 6)
uno mismo.añadir (yo.caja)
uno mismo.botón = Gtk.Botón (etiqueta = "Haga clic aquí")
uno mismo.botón.set_halign (Gtk.Alinear.CENTRAR)
uno mismo.botón.set_valign (Gtk.Alinear.CENTRAR)
uno mismo.botón.conectar ("cliqueado", auto.on_button_clicked)
uno mismo.caja.pack_start (uno mismo.botón, Verdadero, Verdadero, 0)
def on_button_clicked (self, widget):
n = Notificar.Notificación.nuevo ("Aplicación GTK3 simple", "Hola mundo !!")
norte.show()
win = MiVentana ()
ganar.conectar ("destruir", Gtk.main_quit)
ganar.mostrar todo()
Gtk.principal()

Captura de pantalla del resultado final.

La notificación de escritorio que llega cuando se hace clic en el botón "Haga clic aquí":

Explicación paso a paso

Varias declaraciones de "importación" en las primeras líneas del código importan los módulos necesarios para que la aplicación funcione. Estos módulos exponen numerosas clases y funciones que se pueden utilizar dentro de la aplicación. "Soldado americano.Las declaraciones require_version ”aseguran que solo se importe la versión requerida de la biblioteca para evitar problemas de compatibilidad y fallas. En este caso "3.0 ”se utiliza para asegurarse de que se utilice la biblioteca GTK3 en la aplicación y no GTK2 o cualquier otra versión de GTK.

Similar a la clase GTK, la clase Notify también se importa especificando su versión requerida (0.7 es la última versión al momento de escribir este artículo). Esta clase se utilizará más adelante en la aplicación.

importar gi
soldado americano.require_version ("Gtk", "3.0 ")
soldado americano.require_version ('Notificar', '0.7 ')
de gi.importación de repositorio Gtk
de gi.Importar repositorio Notificar

La siguiente declaración subclases "Gtk.Ventana ”como clase“ MiVentana ”. El "Gtk.Ventana.El método __init__ ”inicializa el constructor de la superclase (Gtk.Window) a partir de la cual se creó una subclase (MyWindow). En el constructor, el título de la aplicación también se establece como "Hola mundo" utilizando el argumento "título". La geometría predeterminada de la ventana de la aplicación también se establece especificando el ancho y la altura en el método "set_default_size".

clase MyWindow (Gtk.Ventana):
def __init __ (yo):
Gtk.Ventana.__init __ (self, title = "Hola mundo")
Gtk.Ventana.set_default_size (self, 640, 480)

A continuación, el método "init" de la clase Notify se utiliza para inicializar la biblioteca "libnotify" proporcionando un título de aplicación. Sin la inicialización, las notificaciones no se enviarán ni se mostrarán en el escritorio de Linux.

Notificar.init ("Aplicación GTK3 simple")

La declaración "caja" agrega un contenedor de diseño vacío a la ventana principal de la aplicación. Este contenedor es como un lienzo vacío donde se puede colocar cualquier número de widgets. "Espaciado" se refiere al espacio entre los widgets en las unidades de "píxeles".

uno mismo.caja = Gtk.Caja (espaciado = 6)
uno mismo.añadir (yo.caja)

Se crea un nuevo widget de botón "Haga clic aquí" utilizando el "Gtk.Método "botón". Luego se alinea con los centros horizontales y verticales del diseño de la caja principal utilizando los métodos "set_halign" y "set_valign". El botón está conectado a la señal de "clic" de modo que cada vez que se presiona el botón, se puede invocar el método de devolución de llamada "on_button_clicked". Por último, el widget de botón se inserta desde la izquierda a lo largo del eje horizontal hasta el diseño del cuadro mediante el "cuadro.método pack_start ”. Este método toma cuatro argumentos: el objeto widget que se agregará, booleano para expandir el widget, booleano para llenar el widget y relleno entre los widgets agregados y otros adyacentes.

uno mismo.botón = Gtk.Botón (etiqueta = "Haga clic aquí")
uno mismo.botón.set_halign (Gtk.Alinear.CENTRAR)
uno mismo.botón.set_valign (Gtk.Alinear.CENTRAR)
uno mismo.botón.conectar ("cliqueado", auto.on_button_clicked)
uno mismo.caja.pack_start (uno mismo.botón, Verdadero, Verdadero, 0)

El método "on_button_click" se invoca cada vez que se presiona el botón "Haga clic aquí". Se crea una nueva notificación utilizando el método "nuevo" que toma el título y el contenido de la notificación como argumentos. Esta notificación luego se muestra en el escritorio usando el método "mostrar". También puede mover la declaración "nueva" en el constructor principal para evitar volver a crear la notificación cada vez que se presiona el botón.

def on_button_clicked (self, widget):
n = Notificar.Notificación.nuevo ("Aplicación GTK3 simple", "Hola mundo !!")
norte.show()

Las siguientes declaraciones tratan de crear, administrar y mostrar una nueva ventana de aplicación. Se crea una nueva instancia de la clase "MyWindow" y se conecta a la señal de "destruir" para garantizar que la aplicación se cierre correctamente cada vez que un usuario decide salir de la aplicación haciendo clic en el botón "x". El método "show_all" muestra la ventana de la aplicación en su escritorio Linux. Por último, se ejecuta el bucle principal de la aplicación responsable del manejo de eventos y señales.

Conclusión

GTK3 y Qt son algunos de los marcos de GUI más populares utilizados para crear aplicaciones que se ejecutan de forma nativa en Linux. Ambos marcos le permiten escribir lógica principal en lenguajes C ++ y Python. No puede equivocarse eligiendo cualquiera de estos kits de herramientas para su próximo proyecto de aplicación de Linux.

Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...
Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...