내가 그 위의 코드가 있다는 것입니다으로 포트 27파이썬 : Tkinter를 변화의 응용 프로그램 아이콘이
def main():
t = Test()
t.go()
try:
join_threads(t.threads)
except KeyboardInterrupt:
print "\nKeyboardInterrupt catched."
print "Terminate main thread."
print "If only daemonic threads are left, terminate whole program."
class Test(object):
def __init__(self):
self.running = True
self.threads = []
self.root=Tk()
self.Rval = IntVar()
self.Rval.set(2)
self.root.title("RFID EM LOCK CONTROLLER")
self.variable=StringVar()
self.variable2=StringVar()
self.var2=StringVar()
self.var3=StringVar()
self.i=0
self.root.resizable(0,0)
self.your_label=Label(self.root,textvariable=self.variable,width=40,height=5,bg="Black",fg="Green")
self.lframe = Frame(self.root,width=300,height=200,padx=0)
self.lframe.pack()
self.root.wm_iconbitmap(bitmap = "icon.ico")
def foo(self):
ser=serial.Serial("COM27",9600)
while(self.running):
self.var2= ser.readline()
v = self.var2[0:8];
print v
if self.Isexist(v):
ser.write('A')
self.var2="Valid Card\n"+"Card Number: "+v;
else:
ser.write('B')
self.var2="InValid Card\n"+"Card Number: "+v;
def grid(self):
self.your_label.pack()
def update_label(self):
self.i=self.i+1
self.variable.set(str(self.var2))
self.variable2.set(str(self.var2))
self.root.after(20,self.update_label)
def get_user_input(self):
self.grid()
self.root.after(20,self.update_label)
self.root.mainloop()
def go(self):
t1 = threading.Thread(target=self.foo)
t2 = threading.Thread(target=self.get_user_input)
# Make threads daemonic, i.e. terminate them when main thread
# terminates. From: http://stackoverflow.com/a/3788243/145400
t1.daemon = True
t2.daemon = True
t1.start()
t2.start()
self.threads.append(t1)
self.threads.append(t2)
def join_threads(threads):
"""
Join threads in interruptable fashion.
From http://stackoverflow.com/a/9790882/145400
"""
for t in threads:
while t.isAlive():
t.join(5)
if __name__ == "__main__":
main()
에 아두 이노 입력에 대한 문제를 확인에 유지하기 때문에 스레드와 Tkinter를 .I 스레드를 사용 사용하여 GUI 프로그램을 작성 중단 윈도우 8.1에서 prox64에 self.root.wm_iconbitmap(bitmap = "icon.ico")
을 사용하여 응용 프로그램 아이콘을 설정하면 멈 춥니 다. 파이썬 2.7 tkinter 함께 사용하고 있습니다. 응용 프로그램 아이콘없이 작동합니다.
이 문제를 해결하는 방법은 무엇입니까?
아직도 ... 방대한 @Bryan 오클리가 나타나 내 답변을 철거 가지고, 친구의 날을 도움 과거에. 또한 메인 프레임 외부에서 '시간이 너무 짧아서'.after를 호출하면 즉시 발생합니다. 문제를 해결하기 위해 일반적으로 좋은 방법입니다. 또는 적어도 발견했습니다. @sonu kumar는'.after'가 아닌 다른 tkinter 호출을 별도의 메소드로 옮기고'.after'로 호출 할 수 있습니다. –
@BenjaminJamesDrury 나는 당신이하는 말을 이해할 수 없었다. 더 설명해 주시겠습니까? –
물론, 나는 그것을 완전히 대답 할 것이다. –