Úvod do Tkinter - Okna pro jazyk Python - Postavené na základech 'An
Introduction to Tkinter'
[ předchozí ] [ další ] [ obsah ] [ originál ]
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ý index
-
ANCHOR
-
END
-
INSERT
- Souřadnice myši ("@x")
Čí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