Найти - Пользователи
Полная версия: Вопрос по Тк и "многопоточности"
Начало » GUI » Вопрос по Тк и "многопоточности"
1
nickmetal
Здравствуйте! Вот есть у меня такое окно

я хочу, чтобы вот эти черные линии как бы двигались вниз, создавая иллюзию движения танка вверх

Танком я могу управлять вверх, вниз, влево, вправо. Но, я так понимаю, в то время, как я буду двигать танком, линии будут“ замораживаться”, т.е. пока я с танком не закончу, они не будут двигаться. Правильно ли я понял “однопоточность” в Тк? Как-то можно реализовать, что я хочу в Тк? За ранее спасибо
4kpt
Вы хотите, чтобы танк двигался независимо от движения полос? Я все правильно понял?
nickmetal
4kpt, да, чтобы время движения танка полосы тоже двигались
Faer
nickmetal, напишите функции движения и запустите их в параллельных потоках. Вот пример:

from threading import Thread
def fun1():
    ...
def fun2():
    ...
th1=Thread(target=fun1,args=())
th2=Thread(target=fun2,args=())
th1.start()
th2.start()
В общем-то, ничего сложного. Подробнее о потоках можно почитать здесь.
4kpt
Faer
Хочу на это глянуть :)
У Tkinter своя мультипоточность и она немножко по-другому реализована.
Попробуйте, ради интереса, написать два потока. Один поток пусть выполняет 100 раз print “Pulse” каждые 10 секунд. А в другом потоке следайте так, чтобы можно было нажимать виджет кнопку и при этом выполнялся print “Button Bind”.
sp3
Здесь потоки не нужны.

def after():
    root.after(111,after)
    обновить_линии()
    обновить_положение _танка_по_нажатым_кнопкам()
root.after(111,after)
4kpt
sp3
Я про это и написал :)

Мы это уже обсуждали с Griffon в разделе для экспертов.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB