Un widget de botón conectado a una función de retorno de llamada.
from gi.repository import Gtk
import sys
class MyWindow(Gtk.ApplicationWindow):
# a window
def __init__(self, app):
Gtk.Window.__init__(self, title="GNOME Button", application=app)
self.set_default_size(250, 50)
# a button
button = Gtk.Button()
# with a label
button.set_label("Click me")
# connect the signal "clicked" emitted by the button
# to the callback function do_clicked
button.connect("clicked", self.do_clicked)
# add the button to the window
self.add(button)
# callback function connected to the signal "clicked" of the button
def do_clicked(self, button):
print("You clicked me!")
class MyApplication(Gtk.Application):
def __init__(self):
Gtk.Application.__init__(self)
def do_activate(self):
win = MyWindow(self)
win.show_all()
def do_startup(self):
Gtk.Application.do_startup(self)
app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)
En la línea 16, la señal «clicked»
del botón se conecta a la función de retorno de llamada do_clicked()
usando widget.connect(señal, función de retorno de llamada)
. Consulte la para obtener una explicación más detallada.
set_relief(Gtk.ReliefStyle.NONE)
establece el estilo de relieve de los bordes del «Gtk.Button» a «ninguno», opuesto a Gtk.ReliefStyle.NORMAL
.
Si la etiqueta de un botón es un icono del almacén, set_use_stock(True)
establece la etiqueta al nombre del icono del almacén correspondiente.
Para establecer una imagen (por ejemplo, una imagen del almacén) para el botón button
:
image = Gtk.Image()
image.set_from_stock(Gtk.STOCK_ABOUT, Gtk.IconSize.BUTTON)
button.set_image(image)
No debe establecer una etiqueta para el botón después de esto, ya que si lo hace mostrará la etiqueta y no la imagen.
Si usa set_focus_on_click(False)
, el botón no atrapará el foco cuando el ratón lo pulse. Esto podría ser útil en lugares como barras de herramientas, para que el foco del teclado no se quite del área principal de la aplicación.
En este ejemplo se usa lo siguiente:
GtkButton
GtkWindow