Úvod do Tkinter - Okna pro jazyk Python - Postavené na základech 'An Introduction to Tkinter'

Udělátko Vstupní pole (Widget Entry)

Udělátko Entry je standardní udělátko Tkinter, které se používá k zadávání nebo zobrazování jedné řádky textu.

Kdy Entry používat

Udělátko Entry se používá, potřebujete-li zadávat text. Umožňuje vám zadat jednu řádku textu v jednom fontu.

Chcete-li zadávat víceřádkový text, používejte widget Text.

Pojetí

Tento příklad vytvoří Vstupní pole a Tlačítko, které tiskne jeho obsah:


# -*- coding: utf-8 -*- 
from Tkinter import *

hlavni = Tk()

vstup = Entry(hlavni)
vstup.pack()
vstup.focus_set()

def volanafunkce():
    print vstup.get()

tlacitko = Button(hlavni, text=u"přečti", width=10, command=volanafunkce, font="ArialNarrow 10")
tlacitko.pack()

mainloop()

Tento příklad ukáže, jak vytvořit formulář na jméno a heslo. Heslo se bude zobrazovat jako *, a provedeme hromadné nastavení změny fontu:

# -*- coding: utf-8 -*-
from Tkinter import *

hlavni = Tk()
hlavni.option_add('*Font', 'Arial 9')


def radek(rodic, text, **parametry):
    stitek=Label(rodic, text=text).pack(side=LEFT)
    vstup=Entry(rodic, **parametry)
    vstup.pack(side=LEFT)
    return vstup
   
def tiskni():
    print uzivatel.get()
    print heslo.get()

uzivatel=radek(hlavni, u"Uživatelské jméno: ")
heslo=radek(hlavni, u"Heslo: ", show="*")
Button(hlavni, text=u"přečti", width=10, command=tiskni).pack()

mainloop()

Tento příklad ukáže možnost spojení s tkProměnnou a ověřování obsahu:


# -*- coding: utf-8 -*- 
from Tkinter import *

def overeni():
    print "nyni overuji text"
    return 1

def cteni():
    print vstupObsah.get()   # pristup pres tkPromennou
    print vstup.get()        # pristup pres metodu get instance Entry

hlavni = Tk()
hlavni.option_add('*Font', 'Arial 9')  # aby byl lepsi font

vstupObsah=StringVar()
vstupObsah.set("Žluťoučký kůň pěl ďáleské ódy.")

# obsah je napojen na tkProměnnou vstupObsah 
# a při každém písmení probíhá ověřování
vstup = Entry(hlavni, textvariable=vstupObsah, width=40, validate="key", 
              validatecommand=overeni)
vstup.pack(side=LEFT)
vstup.focus_set()           # aby se dalo hned psát
vstup.icursor(END)          # aby byl kurzor na konci
vstup.selection_range(0, END)
  
tlacitko = Button(hlavni, text=u"přečti", width=10, command=cteni)
tlacitko.pack()

mainloop()

Koncepty

Pozice kurzoru (indexování)

Udělátko Entry umožňuje nastavovat/číst pozici znaku několika způsoby:

Číselné indexy fungují jako indexování pythonovských seznamů. Znaky v řetězci jsou očíslovány od 0 výše. Můžete určovat rozsahy stejně jako slices u seznamů: například (0, 5) odpovídá prvním pěti znakům ve vstupním poli.

ANCHOR (nebo také řetězec"anchor" - česky KOTVA) odpovídá začátku výběru, pokud nějaký je. Můžete použít metodu select_from, chcete-li to programově změnit.

END (nebo "end" - česky KONEC) odpovídá pozici hned za posledním znakem ve vstupním poli. Rozsah (0, END) pak logicky odpovídá všem znakům ve slově.

INSERT (nebo "insert" - česky VLOŽENÍ) odpovídá současné pozici textového kurzoru. Můžete použít metodu icursor, chcete-li to programově změnit.

No a konečně můžete použít i myš k určení indexu, třeba takto:

    "@%d" % x

kde x je pixelová vzdálenost od levé hrany vstupního pole.

Reference

Entry(master=None, **parametry) (class) [#]

Vstupní textové pole.

master
Rodič udělátka.
**parametry
Parametry udělátka. Detaily najdete v metodě config.
config(**parametry) [#]

Mění jeden nebo více parametrů udělátka. Pokud nejsou zadány žádné parametry, metoda vrací slovník s aktuálním nastavením.

**parametry
Parametry udělátka.
background=
Pozadí udělátka. Základní nastavení je závislé na systému. (jméno v database option je background, třída je Background)
bg=
Stejné jako background.
borderwidth=
Šířka okraje. Základní nastavení je závislé na systému, obvykle je několik málo pixelů. (borderWidth/BorderWidth)
bd=
Stejné jako borderwidth.
cursor=
Kurzor udělátka. Základní je textový vstupní kurzor(typicky tvar "I", např. kurzor xterm). (cursor/Cursor)
disabledbackground=
Jaké použít pozadí, když je udělátko vypnuté. Pokud je vynecháno nebo prázdné, použije se standardní pozadí. (disabledBackground/DisabledBackground)
disabledforeground=
Jakou použít barvu písma, když je udělátko vypnuté. Pokud je vynecháno nebo prázdné, použije se standardní barva písma. (disabledForeground/DisabledForeground)
exportselection=
Pokud je pravda, vybraný text se automaticky exportován do schránky. Standardně je true. (exportSelection/ExportSelection)
font=
Font udělátka. Widget font. Základní nastavení je závislé na systému. (font/Font)
foreground=
Barva textu. (foreground/Foreground)
fg=
Stejné jako foreground.
highlightbackground=
Společně s highlightcolor určuje tento parametr jak vykreslovat okraj při focusu. Tento parametr se použije, pokud udělátka focus nemá. Základní nastavení je závislé na systému. (highlightBackground/HighlightBackground)
highlightcolor=
Stejné jako highlightbackground, ale použije se, když udělátko focus má. (highlightColor/HighlightColor)
highlightthickness=
Šířka zvýrazněného kraje při focusu. Standardně je několik málo pixelů, pokud však systém neindikuje focus změnou samotného udělátka (jako na Windows). (highlightThickness/HighlightThickness)
insertbackground=
Barva vkládacího kurzoru. (insertBackground/Foreground)
insertborderwidth=
Šířka okraje vkládacího kurzoru. Pokud je tento nastaven na nenulovou hodnotu, bude kurzor vykreslen reliefem RAISED. (insertBorderWidth/BorderWidth)
insertofftime=
Společně s insertontime tato volba řídící rychlost blikání kurzoru. Obě hodnoty se zadávají v milisekundách. (insertOffTime/OffTime)
insertontime=
Viz insertofftime. (insertOnTime/OnTime)
insertwidth=
Šířka vkládacího kurzoru. Obvykle jeden nebo dva pixely. (insertWidth/InsertWidth)
invalidcommand=
DOPLNIT. Žádné standardní nastavení. (invalidCommand/InvalidCommand)
invcmd=
Stejné jako invalidcommand.
justify=
Jak zarovnat text uvnitř vstupního pole. Použijte jedno z LEFT, CENTER nebo RIGHT. Standard je LEFT. (justify/Justify)
readonlybackground=
Barva pozadí, která se použije, když je stav "readonly". Pokud je vynecháno nebo prázdné, použijte standardní pozadí. (readonlyBackground/ReadonlyBackground)
relief=
Styl okraje. Standardně je SUNKEN. Další možnosti jsou FLAT, RAISED, GROOVE a RIDGE. (relief/Relief)
selectbackground=
Barva pozadí při výběru. Základní nastavení je závislé na systému a displeji. (selectBackground/Foreground)
selectborderwidth=
Šířka okraje při výběru. Základní nastavení je závislé na systému. (selectBorderWidth/BorderWidth)
selectforeground=
Barva písma při výběru. Základní nastavení je závislé na systému. (selectForeground/Background)
show=
Určuje, jak se bude zobrazovat obsah udělátka. Pokud je nenulový, udělátko bude zobrazovat zadaný znak namísto skutečně psaného obsahu. Používá se o polí s hesly = nastavte tuto volbu na "*". (show/Show)
state=
Stav vstupu: NORMAL, DISABLED nebo "readonly" (stejné jako DISABLED, avšak obsah se může vybírat a kopírovat). Standardní je NORMAL. Pokud nastavíte stav na DISABLED nebo "readonly", všechna volání insert a delete jsou ignorována. (state/State)
takefocus=
Indikuje, jestli se může uživatel na toto udělátko dostat pomocí klávesy Tab. Standard je prázdný řetězec, což značí, je vstupní pole může dostat focus jen když má nějaké klávesnicové vazby (což, jinými slovy, značí že standard je zapnuto). (takeFocus/TakeFocus)
textvariable=
Spojuje tkProměnnou (obvykle StringVar) s obsahem vstupního pole. (textVariable/Variable)
validate=
Určuje, kdy se má konat ověřování. Použijete-li "focus", ověření obsahu nastane vždy, když udělátko získá nebo ztratí focus. "focusin" ověřuje jen při získání focusu, "focusout" naopak jen když focus ztratí, "key" při jakékoliv změně a ALL pro všechny předchozí situace. Standard je NONE (žádné ověřování). (validate/Validate)
validatecommand=
Funkce nebo metoda, která se volá na ověření, jestli je obsah v pořádku. Funkce by měla vrátit pravdu, pokud je obsah v pořádku, nebo false, pokud není. Tato volba se použije jen když parametr validate není NONE. (validateCommand/ValidateCommand)
vcmd=
Stejné jako validatecommand.
width=
Šířka vstupního pole v jednotkách "znak". Tento parametr určuje velikost na obrazovce; neomezuje počet znaků, které se dají do vstupního pole napsat. Standard je 20 znaků. (width/Width)
xscrollcommand=
Používá na spojení vstupního pole a vodorovným posuvníkem. Tento parametr by měl být nastaven na metodu set příslušného posuvníku. (xScrollCommand/ScrollCommand)
delete(first, last=None) [#]

Maže znak na pozici nebo v zadaném rozsahu. Na smazání všeho použijte (0, END).

first
Začátek výběru.
last
Dobrovolný konec výběru. Pokud je vynecháno, maže se jen jediný znak.
get() [#]

Vrací současný obsah vstupního pole.

Vrací:
Obsah udělátka ve formě řetězce.
icursor(index) [#]

Posouvá vkládací kurzor na danou pozici. Tímto se také nastavuje pozice INSERT.

index
Kam posunout kurzor.
index(index) [#]

Vrací číselnou pozici, která odpovídá danému indexu.

index
Index.
Vrací:
Odpovídající číselný index.
insert(index, string) [#]

Na danou pozici vkládá text. Na vložení textu na pozici kurzoru použijte insert(INSERT, text) a na vložení textu na konec pak insert(END, text).

index
Kam vložit text.
string
Jaký text se má vložit.
scan_dragto(x) [#]

Nastavuje kotvu viditelnosti pro vodorovný posun na danou souřadnici myši.

x
Současná horizontální pozice myši.
scan_mark(x) [#]

Posunuje bočně obsah udělátka podle souřadnice myši. Text se posunuje o 10 x vzdálenost mezi kotvou viditelnosti a novou pozicí.

x
Současná horizontální pozice myši.
select_adjust(index) [#]

Stejné jako selection_adjust.

select_clear() [#]

Stejné jako selection_clear.

select_from(index) [#]

Stejné jako selection_from.

select_present() [#]

Stejné jako selection_present.

select_range(start, end) [#]

Stejné jako selection_range.

select_to(index) [#]

Stejné jako selection_to.

selection_adjust(index) [#]

Nastaví výběr tak, aby zahrnoval také daný znak. Pokud již je ve zahrnut ve výběru, nedělá nic.

index
Pozice.
selection_clear() [#]

Ruší výběr.

selection_from(index) [#]

Nastavuje začátek nového výběru. Také nastavuje index ANCHOR.

index
Index.
selection_present() [#]

Kontrola, jestli existuje výběr.

Vrací:
Pravdu, pokud je nějaká část textu ve výběru.
selection_range(start, end) [#]

Explicitně nastavuje výběr. Start musí být menší než konec (end). Na výběr všeho textu používejte selection_range(0, END).

start
Začátek výběru.
end
Konec.
selection_to(index) [#]

Vybere všechen text mezi ANCHOR a daným indexem.

index
xview(index) [#]

Zajistí, aby byl daný index viditelný. Pokud j e to nutné, posune se pohled na vstupní pole.

index
Index.
xview_moveto(fraction) [#]

Nastaví pohled na vstupní pole tak, aby daný offset byl u levého kraje. Offset 0.0 je levý kraj, 1.0 konec.

fraction
xview_scroll(number, what) [#]

Roluje pohled na vstupní pole vodorovně na dané číslo.

number
Počet jednotek.
what
Jaké jednotky použít. Může být buď "units" (znaky) nebo "pages" (větší kroky).

Přeložil a upravil - Pavel Kosina - Copyright © 2006 TkinterCZ - GNU Free Documentation License 1.2