В настоящее время работает над проектом, для которого требуется многопоточность для взаимодействия с физическим устройством, при открытии активного кадра для отправки инструкций.Python Multiprocessing with Frame
Проблемы заключается в том, что, когда кадр порожден и кнопка «Hello» нажата, метод test
побежал и Process
работает LEDBehavior.BlinkYellowLightEverySecond()
правильно быть побежали, но кнопка остается в ее нажатие графического состояния и окно становится отвечать на запросы.
Вот код этого кадра.
import LEDBehavior
class MainFrame (Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
def createWidgets(self):
self.hi_there = Button(self)
self.hi_there["text"] = "Hello",
self.hi_there["command"] = self.test
self.hi_there.pack({"side": "left"})
def test (self):
p1 = Process (LEDBehavior.BlinkYellowLightEverySecond())
p1.start()
p1.join()
# create the application
myapp = MainFrame()
#
# here are method calls to the window manager class
#
myapp.master.title ("Sample Text inc, Security Software Professionals")
myapp.master.maxsize (1920, 1080)
myapp.master.minsize (800, 640)
# start the program
myapp.mainloop()
Я удалил строку 'p1.join()', но проблема остается, и Frame остается невосприимчивой. – Vanitas
Можете ли вы разместить код для blink ...? – kabanus
http://pastebin.com/GePfrgzv – Vanitas