Окошки прятать оказывается легко:
window.state('withdrawn') # спрятать
window.state('normal') #показать
window.state('iconic') #свернуть
С зависанием так и не смог справиться
from Tkinter import *
import threading
import Queue
from random import random
root = Tk()
root.geometry("%dx%d%+d%+d" % (200, 200, 5, 5))
Button(root, text = 'hide /threading',command = lambda *e:getcomandque.put('hidewindow')).pack()
Button(root, text = 'show /threading',command = lambda *e:getcomandque.put('showwindow')).pack()
Button(root, text = 'hide /root',command = lambda *e: tpl.event_generate('<<hideme>>')).pack()
Button(root, text = 'show /root',command = lambda *e: tpl.event_generate('<<showme>>')).pack()
tpl = Toplevel(root)
tpl.geometry("%dx%d%+d%+d" % (200, 200, 250, 5))
tpl.event_add ( '<<hideme>>','<F9>',)
tpl.event_add ( '<<showme>>','<F12>')
tpl.bind_all( '<<hideme>>', lambda *e: tpl.state('withdrawn'))
tpl.bind_all( '<<showme>>', lambda *e: tpl.state('normal'))
x = Button(tpl, text = 'rtololo',command = lambda *e:x.config(text=random()))
x.pack()
class MyThreadComand(threading.Thread):
def run(self):
while True:
command = getcomandque.get()
if command != None:
print 'command',command
if command == 'hidewindow':
tpl.state('withdrawn')
if command == 'showwindow':
tpl.state('normal')
print 'ok'
getcomandque = Queue.Queue()
MyThreadComand().start()
root.mainloop()
Велосипед у меня получился с квадратными колесами, никуда ни едет :)
Подскажите как сделать правильно.