Jednoduchý popisek
from gi.repository import Gtk
import sys
class MyWindow(Gtk.ApplicationWindow):
# Konstruktor pro Gtk.ApplicationWindow
def __init__(self, app):
Gtk.Window.__init__(self, title="Welcome to GNOME", application=app)
self.set_default_size(200, 100)
# Vytvoří popisek
label = Gtk.Label()
# Nastaví text popisku
label.set_text("Hello GNOME!")
# Přidá popisek do okna
self.add(label)
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)
Jiným způsobem, jak získat to, co máme v příkladu, je vytvořit popisek jako instanci jiné třídy a přidat jej do instance MyWindow
v metodě do_activate(self)
:
Zvýrazněné řádky označují kód, který se liší od předchozího úryvku.
# Třída pro definici okna
class MyWindow(Gtk.ApplicationWindow):
def __init__(self, app):
Gtk.Window.__init__(self, title="Welcome to GNOME", application=app)
self.set_default_size(200, 100)
# Třída pro definici popisku
class MyLabel(Gtk.Label):
def __init__(self):
Gtk.Label.__init__(self)
self.set_text("Hello GNOME!")
class MyApplication(Gtk.Application):
def __init__(self):
Gtk.Application.__init__(self)
def do_activate(self):
# Vytvoří instanci MyWindow
win = MyWindow(self)
# Vytvoří instanci MyLabel
label = MyLabel()
# a přidá ji do okna
win.add(label)
# Zobrazí okno a vše v něm
win.show_all()
Vysvětlení, jak se v GTK+ pracuje s řetězci, najdete v kapitole .
set_line_wrap(True)
zalamuje řádky v případě, že text popisku přesáhne velikost widgetu.
set_justify(Gtk.Justification.LEFT)
(nebo Gtk.Justification.RIGHT, Gtk.Justification.CENTER, Gtk.Justification.FILL
) nastaví zarovnání řádků v textu popisku relativně vůči sobě. Tato metoda nemá žádný vliv na popisek s jedním řádkem.
Ke zdobení textu můžeme použít set_markup("text")
, kde "text"
je text ve značkovacím jazyce Pango. Příklad:
label.set_markup("Text can be <small>small</small>, <big>big</big>, "
"<b>bold</b>, <i>italic</i> and even point to somewhere "
"in the <a href=\"http://www.gtk.org\" "
"title=\"Click to find out more\">internets</a>.")
V této ukázce se používá následující:
GtkLabel
GtkWindow