TCP를 통해 다른 컴퓨터에서 명령을 받으면 배경색을 변경하는 간단한 프로그램에 문제가 있습니다. 색깔을 바꾸는데 30 초가 걸립니다. 로컬 네트워크를 통해이를 실행하고 있으므로 즉시 대응해야합니다. 프레임에 wxPython을 사용하고 있습니다. 지나치게 복잡한 코드가 있다고 생각하지 않습니다. 관련 코드 :이 객체가 너무 가까이있는 경우 알려드립니다 로봇에 갈 것 같은배경색이 변경되는 데 너무 오래 걸리는 이유는 무엇입니까?
threader=threading.Thread(target=self.threading)
threader.start()
def threading(self):
host="192.168.1.122"
port=4100
s=socket.socket()
s.bind((host,port))
s.listen(1)
c,addr=s.accept()
print "Connected"
while 1:
data=c.recv(1024)
if not data:
break
data=data.split("_")
reading=int(data[1])
pin=int(data[0])
if pin == 1:
if reading<20:
self.front_left.SetBackgroundColour("red")
elif pin == 2:
if reading<20:
self.front_right.SetBackgroundColour("red")
elif pin == 3:
if reading<20:
self.bottom_left.SetBackgroundColour("red")
elif pin == 4:
if reading<20:
self.bottom_right.SetBackgroundColour("red")
else:
pass
c.close()
나는 즉시로이 코드가 필요합니다 (이는이 개체의 20cm 이내에 도착 빨간색 배경이 이유) . 어떤 도움이라도 대단히 감사하겠습니다!
을 또한,에 경우에 따라 bacjground가 창이 다시 칠해 질 때까지 변경되지 않은 것처럼 보일 수 있습니다. 위의 내용이 도움이되지 않는 경우 SetBackgroundColour를 새 메서드로 이동하고 새로 고침을 호출 한 다음 해당 메서드를 호출 할 수도 있습니다. wx.CallAfter를 통한 ew 메소드. – RobinDunn
좋은 지적. ** Refresh() ** 메소드에 대해 언급 했어야합니다. –
Refesh()는 효과가 있습니다! 감사! – user3818089