Instale los paquetes necesarios
Para crear una aplicación que use Python 3 y GTK3, debe instalar enlaces de Python para bibliotecas de Gobjects. Esto se puede hacer instalando el paquete pygobject incluido en repositorios de casi todas las principales distribuciones de Linux. Para instalar estas dependencias en Ubuntu, puede usar el comando a continuación:
$ sudo apto install python3 python3-giTambién puede compilar pygobject 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 "Hello World !!"Notificación al escritorio al hacer clic en un botón.
importación giCaptura de pantalla del resultado final.
Se hace clic en la notificación de escritorio que llega cuando se hace clic "Haga clic aquí":
Explicación paso a paso
Varias declaraciones de "importación" en las primeras líneas del código Importar módulos necesarios necesarios para que la aplicación funcione. Estos módulos exponen numerosas clases y funciones que se pueden usar dentro de la aplicación. "Soldado americano.Las declaraciones de requisito_version "aseguran que solo se importe la versión requerida de la biblioteca para evitar problemas de compatibilidad y bloquear. En este caso "3.0 ”se usa para asegurarse de que la biblioteca GTK3 se use 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 esa última versión al momento de escribir este artículo). Esta clase se utilizará más adelante en la aplicación.
importación giLa siguiente declaración subclase "GTK.Clase de ventana "como clase" mywindow ". El "gtk.Ventana.El método __init__ ”inicializa el constructor de la súper clase (GTK.Ventana) desde la cual se creó una subclase (mywindow). En el constructor, el título de la aplicación también se establece como "Hello World" utilizando el argumento de "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):A continuación, el método "init" de la clase Notify se utiliza para inicializar la biblioteca "libnotify" suministrando un título de aplicación. Sin inicialización, las notificaciones no se enviarán y se mostrarán en el escritorio de Linux.
Notificar.init ("aplicación simple GTK3")La instrucción "Box" agrega un contenedor de diseño vacío a la ventana de aplicación principal. Este contenedor es como un lienzo vacío donde se pueden poner cualquier número de widgets. "Espacio" se refiere al espacio entre widgets en las unidades de "píxel".
ser.caja = GTK.Caja (espaciado = 6)Se crea un nuevo widget de botón "Haga clic aquí" utilizando el "GTK.Botón "Método. 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 "haciendo clic" para que cada vez que se presione el botón, se pueda invocar el método de devolución de llamada "on_button_clicked". Por último, el widget del botón se inserta desde la izquierda a lo largo del eje horizontal hasta el diseño de la caja con la "caja.Método Pack_Start ". Este método toma cuatro argumentos: el objeto de widget a agregar, booleano para expandir el widget, booleano para llenar el widget y el relleno entre los widgets agregados y otros widgets adyacentes.
ser.botón = GTK.Botón (etiqueta = "Haga clic aquí")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 de notificación y el contenido como argumentos. Esta notificación se muestra en el escritorio utilizando el método "show". También puede mover la instrucción "nueva" en el constructor principal para evitar recrear la notificación cada vez que se presiona el botón.
def on_button_clicked (self, widget):Las siguientes afirmaciones se tratan de crear, administrar y mostrar una nueva ventana de aplicación. Se crea una nueva instancia de la clase "mywindow" y está conectada a la señal "destruir" para garantizar que la aplicación esté cerrada correctamente cada vez que un usuario decide dejar 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 de Linux. Por último, el bucle de aplicación principal responsable de manejar eventos y señales se ejecuta.
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 la lógica principal en los idiomas de C ++ y Python. No puede equivocarse eligiendo cualquiera de estos kits de herramientas para su próximo proyecto de aplicación de Linux.