Python Tkinter Making Serial Work With Buttons
I'm new to OOP,and I'm trying to make a GUI for myself. I want to make a simulator program. I'm reading the serial data with an Arduino. My questions are: Why does the button dis
Solution 1:
Comment: when I press the quit button my window freezes, and can't do anything
I have overloaded the Application.destroy() which is calld from root.destroy(). There we call root.destroy(), which results in a infinit loop.
Change def destroy(... to def quit(...
Question: how can I stop the run() function with the stop button
Use a flag variable e.g. self.stopUpdate as follows:
def__init__(self,master,*args,**kwargs):
...
self.stopUpdate = None
self.MakeSerial()
defPackWidgets(self):
...
self.quit_button=Button(..., command=self.quit, ...
defquit(self):
self.Stop()
# Wait until Update returnswhile self.stopUpdate:
time.sleep(1)
root.destroy()
defStart(self):
self.stopUpdate = False
self.Update()
defStop(self):
self.stopUpdate = TruedefUpdate(self):
if self.stopUpdate:
# Indicates Update returns, for self.destroy(...
self.stopUpdate = Falsereturntry:
...
Remove this alltogether
#def run(self):# self.MakeSerial()# self.Update()# root.mainloop()
- moved
self.MakeSerial()to__init__(... - moved
self.Update()toself.Start(... - move
root.mainloop()to the bottom of the script.
Note: It is bad, to catch multiple Exceptions with one
try: ... except:block. Use one for.ser.readline(...and one for=data
Post a Comment for "Python Tkinter Making Serial Work With Buttons"