Так что я как бы застрял на этом, и я действительно не уверен, куда идти дальше. Я пытаюсь создать графический интерфейс tkinter для управления модулем чтения / записи Parallax RFID. До сих пор мне удалось закодировать окно tkinter и создать кнопку, при нажатии которой она начнет читать тег rfid. Моя проблема в том, что я не знаю, как создать метку, которая будет обновляться, чтобы содержимое памяти тега отображалось в окне tkinter, а не только на консоли.
Это код Python 2.7.
Вот код, который я использую для печати содержимого тегов на консоль.
print ("Read App Starting...")
print ("Reading tag's User Data...")
for ix in range(3, 31):
while True:
ser.write('!RW' + chr(CMD_READ) + chr(ix)) # send command
buf = ser.read(5) # get bytes (will block until received)
if buf[0] == chr(ERR_OK): # if valid data received with no error, continue
break
print ("%2d") % ix, ": ",
for iy in range(1,len(buf)): # display data
sys.stdout.write("%02X" % ord(buf[iy]))
print("")
Я сохранил это в файл и импортирую в свой код tkinter.
Приложение Tkinter
from tkinter import *
import read_tag
class Window(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.master = master
self.init_window()
#Creation of init_window
def init_window(self):
# changing the title of our master widget
self.master.title("GUI")
# allowing the widget to take the full space of the root window
self.pack(fill=BOTH, expand=1)
# creating a button instance
readbutton = Button(self, text="Read Tag", command=read_tag.main)
# placing the button on my window
readbutton.place(x=0, y=0)
outputlabel = Label(self, text="Tag Data :")
outputlabel.place(x=60, y=0)
output = Label(self, command=?)
output.place(x=70, y=0)
root = Tk()
#size of the window
root.geometry("400x300")
app = Window(root)
root.mainloop()