Как мога да конфигурирам Tkinter widget от отделен клас?

Пиша Tkinter програма, която изисква цикъл. Не мога да стартирам цикъла от същия клас, в който е Tkinter, доста съм сигурен в това. За да стартирам споменатия цикъл, смятам, че трябва да използвам отделна нишка, следователно отделен клас, за да предпазя Tkinter от замръзване. Накарах Tkinter да работи, докато цикъл в нишката отпечатва числа. Трябва обаче да го накарам да конфигурира прозорец на Tkinter, който се намира в друг клас. Как да направя това?


person SaxSalute    schedule 09.06.2011    source източник


Отговори (1)


Не е задължително да имате нужда от друга нишка, защото не е необходимо да създавате цикъл (вижте моят отговор на другия ви въпрос относно използването на вложен цикъл).

Въпреки това, за да отговорите на вашия конкретен въпрос, трябва да внедрите опашка. Работната нишка ще постави съобщения от някакъв вид на опашката, а основната нишка анкетира опашката чрез цикъла на събитията и отговаря на съобщението. Това е необходимо, защото работната нишка не може директно да променя tk widgets.

За пример за използване на нишки и опашки с Tkinter вижте Tkinter и нишки на effbot. кълбо Обърнете специално внимание как използва after за запитване на опашката на всеки 100 ms.

person Bryan Oakley    schedule 09.06.2011