Búsqueda de sitios web

Cree aplicaciones GUI más avanzadas utilizando la herramienta PyGobject en Linux - Parte 2


Continuamos nuestra serie sobre la creación de aplicaciones GUI en el escritorio Linux usando PyGObject. Esta es la segunda parte de la serie y hoy hablaremos sobre la creación de aplicaciones más funcionales utilizando algunos widgets avanzados.

Requisitos

  1. Cree aplicaciones GUI en Linux usando PyGObject – Parte 1

En el artículo anterior dijimos que hay dos formas de crear aplicaciones GUI usando PyGObject: la forma de solo código y la forma de diseñador Glade. , pero de ahora en adelante, solo explicaremos la forma del diseñador Glade ya que es mucho más fácil para la mayoría de los usuarios; puedes aprender la forma de solo código usando python-gtk3-tutorial.

Creación de aplicaciones GUI avanzadas en Linux

1. ¡Empecemos a programar! Abra su diseñador Glade desde el menú de aplicaciones.

2. Haga clic en el botón “Ventana” en la barra lateral izquierda para crear una nueva.

3. Haga clic en el widget “Cuadro” y suéltelo en la ventana vacía.

4. Se le pedirá que ingrese la cantidad de casillas que desea, hágalo 3.

Y verás que se crean los cuadros, esos cuadros son importantes para nosotros para poder agregar más de solo 1 widget en una ventana.

5. Ahora haga clic en el widget cuadro y cambie el tipo de orientación de vertical a horizontal.

6. Para crear un programa simple, agregue una “Entrada de texto”, un “Texto del cuadro combinado” y un “Botón ” widgets para cada uno de los cuadros, deberías tener algo como esto.

7. Ahora haga clic en el widget “ventana1” de la barra lateral derecha y cambie su posición a “Centro”.

Desplácese hacia abajo hasta la sección “Apariencia”. Y agregue un título para la ventana “Mi programa”.

8. También puede elegir un icono para la ventana haciendo clic en el cuadro “Nombre del icono”.

9. También puedes cambiar el alto y el ancho predeterminados para la aplicación. Después de todo eso, deberías tener algo como esto.

En cualquier programa, una de las cosas más importantes es crear una ventana “Acerca de”, para hacer esto, primero tendremos que cambiar el botón normal que creamos antes a un botón estándar, mira la imagen.

10. Ahora, tendremos que modificar algunas señales para ejecutar acciones específicas cuando ocurra algún evento en nuestros widgets. Haga clic en el widget de entrada de texto, cambie a la pestaña “Señales” en la barra lateral derecha, busque “activado” y cambie su controlador a “enter_button_clicked”, la señal “activada” es la señal predeterminada que se envía cuando se presiona la tecla “Enter” mientras se enfoca el texto. widget de entrada.

Tendremos que agregar otro controlador para la señal “clicked” para nuestro widget de botón Acerca de, hacer clic en él y cambiar la señal “clicked” a “button_is_clicked”. “.

11. Vaya a la pestaña “Común” y marque “Tiene foco” como se indica a continuación (para darle el enfoque predeterminado al botón Acerca de en lugar de la entrada).

12. Ahora, desde la barra lateral izquierda, cree una nueva ventana "Diálogo Acerca de".

Y notarás que se crea la ventana “Diálogo Acerca de”.

Modifiquémoslo... Asegúrese de insertar la siguiente configuración desde la barra lateral derecha.

Después de realizar la configuración anterior, obtendrá información sobre Windows.

En la ventana de arriba, notará el espacio vacío, pero puede eliminarlo reduciendo el número de cuadros de 3 a 2 o puede agregarle cualquier widget si lo desea.

13. Ahora guarde el archivo en su carpeta de inicio con el nombre “ui.glade”, abra un editor de texto e ingrese el siguiente código dentro de él.


#!/usr/bin/python
-*- coding: utf-8 -*-

from gi.repository import Gtk
class Handler:

    def button_is_clicked(self, button):
        ## The ".run()" method is used to launch the about window.
         ouraboutwindow.run()
        ## This is just a workaround to enable closing the about window.
         ouraboutwindow.hide()

    def enter_button_clicked(self, button):
        ## The ".get_text()" method is used to grab the text from the entry box. The "get_active_text()" method is used to get the selected item from the Combo Box Text widget, here, we merged both texts together".
         print ourentry.get_text() + ourcomboboxtext.get_active_text()

## Nothing new here.. We just imported the 'ui.glade' file.
builder = Gtk.Builder()
builder.add_from_file("ui.glade")
builder.connect_signals(Handler())

ournewbutton = builder.get_object("button1")

window = builder.get_object("window1")

## Here we imported the Combo Box widget in order to add some change on it.
ourcomboboxtext = builder.get_object("comboboxtext1")

## Here we defined a list called 'default_text' which will contain all the possible items in the Combo Box Text widget.
default_text = [" World ", " Earth ", " All "]

## This is a for loop that adds every single item of the 'default_text' list to the Combo Box Text widget using the '.append_text()' method.
for x in default_text:
  ourcomboboxtext.append_text(x)

## The '.set.active(n)' method is used to set the default item in the Combo Box Text widget, while n = the index of that item.
ourcomboboxtext.set_active(0)
ourentry = builder.get_object("entry1")

## This line doesn't need an explanation :D
ourentry.set_max_length(15)

## Nor this do.
ourentry.set_placeholder_text("Enter A Text Here..")

## We just imported the about window here to the 'ouraboutwindow' global variable.
ouraboutwindow = builder.get_object("aboutdialog1")

## Give that developer a cookie !
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main

Guarde el archivo en su directorio de inicio con ese nombre “miprograma.py”, asígnele permiso de ejecución y ejecútelo.

chmod 755 myprogram.py
./myprogram.py
This is what you will get, after running above script.

Ingrese un texto en el cuadro de entrada, presione la tecla “Entrar” en el teclado y notará que la oración está impresa en el shell.

Eso es todo por ahora, no es una aplicación completa, pero solo quería mostrarte cómo vincular cosas usando PyGObject. Puedes ver todos los métodos para todos los widgets GTK en objetosgtko.

Simplemente aprenda los métodos, cree los widgets usando Glade y conecte las señales usando el archivo Python. ¡Eso es todo! No es nada difícil amigo.

Explicaremos más cosas nuevas sobre PyGObject en las próximas partes de la serie, hasta entonces mantente actualizado y no olvides darnos tus comentarios sobre el artículo.