【发布时间】:2014-06-16 19:55:01
【问题描述】:
我有一个基于 python Tkinter 的 GUI,我希望在单击“读取”按钮时显示几个变量的值。理想情况下,这应该发生在显示更新变量的窗口中的某个框架中,而不会干扰其他具有其他功能的 GUI 小部件。
我遇到的问题是 - 每次我点击“读取”时,更新的变量都会列在旧变量的正下方,而不是在那个位置覆盖。我似乎有一个不正确的了解标签的工作原理,以及 padx、pady(标签的位置)。我已经粘贴了下面的代码。正确的方法应该是什么才能删除以前的数据并将新数据粘贴到那个位置?
def getRead():
#update printList
readComm()
#update display in GUI
i=0
while i < (len(printList)):
labelR2=Tk.Label(frameRead, text=str(printList[i]))
labelR2.pack(padx=10, pady=3)
i=i+1
frameRead=Tk.Frame(window)
frameRead.pack(side=Tk.TOP)
btnRead = Tk.Button(frameRead, text = 'Read', command= getRead)
btnRead.pack(side = Tk.TOP)
window.mainloop()
上面的代码成功地在一列式显示中显示了 printList 的元素。但是,每次调用 getRead 时(单击读取按钮时),它都会附加到上一个显示。
PS - 如果有更好的方式来显示数据,除了标签小部件,那么请提出建议。
【问题讨论】:
标签: python user-interface tkinter