Tkinter GUI로 작은 프로그램을 작성하여 2 줄의 텍스트를 입력하고 문자 화면에 표시하도록했습니다. 적용 텍스트를 누르기 전까지는 모든 것이 꽤 멋지게 작동합니다. 그 이유는 LCD의 두 줄에 이상한 값이 나타나는 것 같기 때문입니다.
예 :
구인 라인 1 : "Test
"
구인 라인 2 : "Please work
"Python 프로그램이 내 16x2 문자 LCD에 이상한 값을 출력하고 있습니다
실제 결과
행 1 : .3047332040L.304
2 호선 :
7332320L
입니다
__author__ = 'David'
from Tkinter import *
from Adafruit_CharLCD import Adafruit_CharLCD
from time import sleep
import psutil
chargui = Tk()
lcd = Adafruit_CharLCD()
lcd.begin(16, 1)
class FrameWork:
def __init__(self, master):
frame = Frame(master)
frame.pack()
# Creation
self.lbl_enter1 = Label(frame, text="Enter the first line:")
self.lbl_enter2 = Label(frame, text="Enter the second line:")
self.ent_line1 = Entry(frame)
self.ent_line2 = Entry(frame)
self.btn_apply = Button(frame, text="Apply Text", command=self.applymessage)
self.btn_cpum = Button(frame, text="CPUMem", command=self.CPUMem)
self.btn_quit = Button(frame, text="Quit", command=frame.master.destroy)
# Griding
self.lbl_enter1.grid(row=0, column=0, sticky=E, padx=2)
self.lbl_enter2.grid(row=1, column=0, sticky=E, padx=2)
self.ent_line1.grid(row=0, column=1, sticky=W)
self.ent_line2.grid(row=1, column=1, sticky=W)
self.btn_apply.grid(row=2, column=1, sticky=W, padx=24)
self.btn_cpum.grid(row=2, column=0, columnspan=2, sticky=W, padx=85)
self.btn_quit.grid(row=2, column=1, sticky=E)
def applymessage(self):
lcd.clear()
lcd.message(str(self.ent_line1))
lcd.message(str(self.ent_line2))
def CPUMem(self):
while 1:
lcd.clear()
lcd.message("CPU: " + str(psutil.cpu_percent()) + "%\n")
lcd.message("MEM: " + str(psutil.virtual_memory().percent) + "%")
sleep(1)
g = FrameWork(chargui)
chargui.mainloop()
CPUMem
기능. 이 함수는 잘 작동합니다. 그냥 문제가되는 applymessage(self):
입니다. 나는 전혀 오류가 발생하지 않습니다. 그래도 lcd.message 함수에서 srt()
을 제거하면 문자열에 int를 연결할 수 없다는 메시지가 나타납니다. 모든 솔루션?
편집 : (? 그들은 메모리 위치입니다 추측) 난 그냥 LCD에 그것을 넣는 대신 콘솔에 값을 인쇄했는데, 그것은 여전히 나를 이상한 값을 제공
두 라인
1 호선 : .3047815368L.3047815608L
2 호선 : .3047815368L.3047815648L
건배! 이것은 완벽하게 잘 작동 :) – davidpox