# ToggleButton (Python)

Marta Maria Casetti
mmcasetti@gmail.com 2012
En knapp som behåller sitt tillstånd
Sebastian Rasmussen
sebras@gmail.com 2019
Anders Jonsson
anders.jonsson@norsjovallen.se 2021

# ToggleButton

När denna ToggleButton är i aktivt läge så snurrar väntesnurran.

# Kod som använts för att generera detta exempel

from gi.repository import Gtk import sys

class MyWindow(Gtk.ApplicationWindow): # a window

def __init__(self, app): Gtk.Window.__init__( self, title="ToggleButton-exempel", application=app) self.set_default_size(300, 300) self.set_border_width(30)

# en väntesnurreanimering self.spinner = Gtk.Spinner() # med extra horisontellt utrymme self.spinner.set_hexpand(True) # med extra vertikalt utrymme self.spinner.set_vexpand(True)

# en växlingsknapp button = Gtk.ToggleButton.new_with_label("Starta/stoppa") # anslut signalen "toggled" som utges av växlingsknappen # när dess tillstånd ändras till återanropsfunktionen toggled_cb button.connect("toggled", self.toggled_cb)

# ett rutnät för att allokera komponenterna grid = Gtk.Grid() grid.set_row_homogeneous(False) grid.set_row_spacing(15) grid.attach(self.spinner, 0, 0, 1, 1) grid.attach(button, 0, 1, 1, 1)

# lägg till rutnätet till fönstret self.add(grid)

# återanropsfunktion för signalen "toggled" def toggled_cb(self, button): # starta väntesnurran om växlingsknappen är aktiv if button.get_active(): self.spinner.start() # stoppa den annars else: self.spinner.stop()

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)

# Användbara metoder för en ToggleButton-komponent

På rad 22 ansluts signalen `"toggled"` till återanropsfunktionen `toggled_cb()` med `komponent.connect(signal, återanropsfunktion)`. Se för en utförligare förklaring.

# API-referenser

I detta exempel använde vi följande:

GtkToggleButton

GtkWidget

GtkSpinner