Tato aplikace vás přivítá v terminálu jménem, které zadáte.
from gi.repository import Gtk
import sys
class MyWindow(Gtk.ApplicationWindow):
def __init__(self, app):
Gtk.Window.__init__(self, title="What is your name?", application=app)
self.set_default_size(300, 100)
self.set_border_width(10)
# Jednořádkové vstupní pole
name_box = Gtk.Entry()
# Vyšle signál, když je zmáčknuta klávesa Enter, napojený na
# funkci zpětného volání cb_activate
name_box.connect("activate", self.cb_activate)
# Přidá Gtk.Entry do okna
self.add(name_box)
# the content of the entry is used to write in the terminal
def cb_activate(self, entry):
# Získá obsah widgetu
name = entry.get_text()
# Vypíše jej v hezké podobě do terminálu
print("Hello " + name + "!")
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)
Na řádku 14 je signál "activate"
napojen na funkci zpětného volání cb_activate()
pomocí widget.connect(signál, funkce_zpětného_volání)
. Podrobnější vysvětlení viz . Mezi signály, které widget Gtk.Entry
umí vyslat patří: "activate"
(vyšle, když uživatel použije klávesu Enter); "backspace"
(vyšle, když uživatel použije klávesu Backspace nebo Shift-Backspace); "copy-clipboard"
(Ctrl-c a Ctrl-Insert); "paste-clipboard"
(Ctrl-v a Shift-Insert); "delete-from-cursor"
(Delete pro mazání znaku; Ctrl-Delete pro mazání slova); "icon-press"
(vyšle, když uživatel klikne na aktivovatelné ikoně); "icon-release"
(vyšle při uvolnění tlačítka z kliknutí myší na aktivovatelné ikoně); "insert-at-cursor"
(vyšle, když uživatel začne vkládat pevný řetězec na pozici kurzoru); "move-cursor"
(vyšle, když uživatel začne posouvat kurzor); "populate-popup"
(vyšle před zobrazením kontextové nabídky pole; může být použito k přidání položek do ní).
get_buffer()
a set_buffer(vyrovnávací_paměť)
, kde vyrovnávací_paměť
je objekt Gtk.EntryBuffer, můžete použít k získání a nastavení vyrovnávací paměti pro vstupní pole.
get_text()
a set_text("nějaký text")
můžete použít k získání a nastavení obsahu vstupního pole.
get_text_length()
vrací délku textu.
get_text_area()
vrací oblast, ve které je textové vstupní pole vykreslováno.
Když nastavíme set_visibility(False)
, jsou znaky v poli zobrazovány pomocí „neviditelného“ znaku. Je zvolen nejlépe dostupný v aktuálním písmu, ale můžete jej změnit na jiný pomocí set_invisible_char(zn)
, kde zn
je znak v Unikódu. Později lze změnu zvrátit použitím unset_invisbile_char()
.
set_max_length(int)
, kde int
je celé číslo, zkrátí každý vstup delší než int
na požadovanou maximální délku.
Ve výchozím stavu, když zmáčknete klávesu "activate"
. Pokud byste chtěli aktivovat výchozí widget okna (nastavený pomocí metody set_default(widget)
okna), použijte set_activates_default(True)
.
Pro nastavení rámečku okolo vstupního pole: set_has_frame(True)
.
set_placeholder_text("nějaký text")
nastavuje text, který má být zobrazen ve vstupním poli, když je prázdné a nezaměřené.
set_overwrite_mode(True)
a set_overwrite_mode(False)
zapíná/vypíná režim přepisování.
Když je nastaveno set_editable(False)
, nemůže uživatel upravovat text ve widgetu.
set_completion(doplňování)
, kde doplňování
je Gtk.EntryCompletion
, nastaví doplňování, nebo jej naopak zakáže, když je doplňování
nastaveno na None
.
Widget Entry
může na pozadí textu zobrazovat průběh nebo aktivitu. K vyplnění zadané části pruhu používáme set_progress_fraction(část)
, část
je číslo typu float
v rozmezí 0.0
až 1.0
včetně. set_progress_pulse_step()
používáme k nastavení části celkové délky pole, která se má pohybovat jako poletující blok ukazatele průběhu při každém zavolání progress_pulse()
. Poslední zmíněná metoda dává najevo, že byl učiněn nějaký pokrok a způsobí, že indikátor ukazatele průběhu vstoupí do aktivního režimu, kdy blok poletuje tam a zpět. Každé zavolání progress_pulse()
způsobí, že se blok o kousek posune (o kolik přesně je určeno, jak již bylo řečeno, pomocí set_progress_pulse_step()
).
Widget Entry
může také zobrazovat ikony. Tyto ikony, které lze aktivovat kliknutí, mohou být nastaveny jako zdroj pro přetahování a mohou mít vysvětlivky. Pro přidání ikony použijte set_icon_from_stock(pozice_ikony, standardní_id)
nebo některou z funkcí set_icon_from_pixbuf(pozice_ikony, pixbuf)
, set_icon_from_icon_name(pozicei_kony, název_ikony)
, kde pozice_ikony
je něco z Gtk.EntryIconPosition.PRIMARY
(vytvoří ikonu na začátek vstupního pole) nebo Gtk.EntryIconPosition.SECONDARY
(vytvoří ikonu na konci vstupního pole). Pro nastavení vysvětlivky ikoně použijte set_icon_tooltip_text("text vysvětlivky")
nebo set_icon_tooltip_markup("text vysvětlivky ve značkovacím jazyce Pango")
.
V této ukázce se používá následující:
GtkEntry