Как я могу создать «консольный» дисплей для отображения вывода кода, который я запускаю в окне tkinter? - PullRequest
2 голосов
/ 14 апреля 2019

Так что я как бы застрял на этом, и я действительно не уверен, куда идти дальше. Я пытаюсь создать графический интерфейс 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()  

1 Ответ

0 голосов
/ 14 апреля 2019

Использование output.config(text='UPDATED TEXT')

...