Форум сайта python.su
Запустил скрипт с окном из другого приложения (на Tkinter), окно блокирует перерисовку окна базового приложения. Как передавать управление системе (windows) для обработки событий на некоторое время ?
Офлайн
Каким образом ты запускаешь внешнюю программу?
Попробуй через subprocess.
Скорее всего, твоя программа (tkinter) ждет завершения внешнего процесса, и не идет цикл mainloop, в котором то как раз происходит отрисовка и реакция на события.
Отредактировано (Янв. 17, 2010 11:20:14)
Офлайн
Питон - скриптовый язык приложения (Blender). Окно созданное независимо отрисовывается нормуль, а при запуске из-под приложения - косяк, при перетаскивании не перерисовывается освобожденная область. Реакцию на события (eventы) не писал (еще не знаком), т.е. цикл mainloop гоняется пустым. Subprocess для меня крутовато звучит, может в tkinter можно организовать, что-то по смыслу ON_TKINTER_UPDATE { … ; MAIN_APLICATION_UPDATE()}- принудительно обновлять базовое приложение при обновлении окна tkinter.
Офлайн
Посмотри метод update…
Когда запускается gui приложение, то оно mainloop вызывает бесконечный цикл, в котором отрисовываются виджеты, происходит реакция на какие либо события (например на нажатия кнопок)
пример:
import time
from Tkinter import *
root=Tk()
def do():time.sleep(20)
b=Button(root,text='do',command=do)
b.pack()
root.mainloop()
Офлайн