Mám nějaké nejasnosti v Tkinter, které se mi nepodařilo nikde rozumně najít. Dělám program pro mámu, který bude zkoušet děti z poznávání živočichů a rostlin, ale ještě není hotový a je dost dlouhý, tak jsem sem dal jenom výtah toho, čemu nerozumím.
1. když vytvořím podokno "podoknoo", tak bych chtěl, aby se focus navrátil rootovi, ale funkce "focus ()" nefunguje?
2. zápis do souboru háže chybu UnicodeEncodeError, nevím proč, když by řetězec podle mě měl být unicode; zajímavé je, že poprvé nebyl problém zapisovat do souboru, když jsem v proměnné "text" nezadal "u" jako unicode před řetězec, druhý den jsem tam dodal to "u", aby to fungovalo a třetí den už mi to nefunguje ani s tím "u", text.encode ("utf-8) podle mě nic neudělá, protože to je unicode řetězec?
3. při tisknutí výšky a šířky okna se vytiskne 1,1 i když tomu tak není, pokud odkomentářuju "pdb" a debugguju to, tak se vypíšou správné hodnoty, tuším nějakých 27, 19?
# -*- coding: utf-8 -*-
from Tkinter import *
def podokno ():
podoknoo = Toplevel (root)
root.focus () # nefunguje navrácení focusu rootu
root = Tk ()
navesti = Label (root, text = "ahoj")
navesti.pack ()
button = Button (root, text = "push", command = podokno)
button.pack ()
text = u"Žluťoučký kůň pěl ďábelské ódy.š"
soubor = file ("zkouska.txt", "a")
text.encode ("utf-8") # tohle je asi zbytečné
soubor.write (text) # zde to háže chybu UnicodeEncodeError na pozici 0
soubor.close ()
# import pdb # debbugování
# pdb.set_trace ()
print root.winfo_height (), root.winfo_width () #informace o okně
mainloop ()
S pythonem jsem spíše začátečník, tak mně kdyžtak opravte, pokud něčemu rozumím špatně.
Díky.