반응형
ㅍ지난시간까지 만든 코드는 아래와 같다.
import tkinter as tk
#윈도우 생성
root=tk.Tk()
#전체 이름
root.title('무게를 이용한 검수')
#창 크기 +붙은 부분은 좌상단 떨어진 위치
root.geometry("600x400+100+100")
#창 크기 조절 가능 여부 (디폴트 True)
root.resizable(True,True)
lab00=tk.Label(root,text="현재 무게",
font=('Arial 32 bold'),bg='black',fg="red",width=8,height=1)
lab00.grid(row=0,column=0,padx=10,pady=10)
실시ㅍ간으로 무게를 얻는 라벨을 추가하려고 한다. 위 코드에 이어서 아래 코드를 추가했다.
#######################################
import serial
import re
ser = serial.Serial(port='COM8', baudrate=9600, bytesize=serial.EIGHTBITS,
parity=serial.PARITY_NONE, timeout=None)
while(True):
ser.close()
ser.open()
#값 불러오기
res=ser.readline()
#문자열로 변환
res=str(res)
#숫자 부분 추출, 추출 결과는 ['숫자'] 형태
res=re.findall("\d+.\d+",res)
#문자열 추출
if len(res)==0 :
res="set0"
else :
res=res[0]
#실수로 변환
res=float(res)
lab01=tk.Label(root,text=res,font=('Arial 32 bold'),bg="white",fg="black",width=8)
lab01.grid(row=0,column=1,padx=10,pady=20) #이렇게 .grid 따로 입력 해야 .destroy() 명령어 적용가능
root.update()
lab01.destroy()
이미 만들어놓은 시리얼 신호를 받는 코드다. while 문 안에 라벨을 만들어서, res에 저장된 값이 출력되도록 하였다. 라벨 값이 계속 바뀌기 때문에 root.update 를 이용하여 화면을 업데이트를 해주어야 한다.
라벨이 계속 중첩되며 쌓이는 문제가 발생해서 lab01.destroy() 코드를 추가하여, 이전 라벨을 지워주도록 하였다.
코드 실행 결과는 아래와 같다.
반응형
'GUI 프로젝트 > 저울 연결하기 (시리얼통신) (Tkinter)' 카테고리의 다른 글
[파이썬 저울 연결] 11. GUI 만들기 #4. 무게로 회사와 제품명 판별 (0) | 2022.01.10 |
---|---|
[파이썬 저울 연결] 10. 오류(_tkinter.TclError: can't invoke "label" command: application has been destroyed) (0) | 2022.01.10 |
[파이썬 저울 연결] 8. GUI 만들기 #2. 라벨 추가하기 (0) | 2022.01.10 |
[파이썬 저울 연결] 7. GUI 만들기 #1. 윈도우 만들기 (0) | 2022.01.07 |
[파이썬 저울 연결] 6. 0점조절, tare 시 오류 (0) | 2022.01.07 |
댓글