如何在Tkinter中刷新窗口?

时间:2018-04-24 08:54:04

标签: python python-3.x tkinter

我一直在使用Python3.6.2中的Tkinter模块编写这个程序。有一些按钮可以打开一个团队列表和一个竞争者列表,我更喜欢将输出保存在一个窗口中,但是如果我单击“团队”按钮后跟“个人”按钮,则两个元素打开一个在另一个之后。

我希望添加一个重置窗口的按钮(删除输出,只留下按钮),但我没有在网上找到任何与我的程序一起使用的解决方案。

from tkinter import *
import tkinter as tk

bgcol = "#0B8CFF"

class MainMenu:
    def __init__(self, master):

        self.master = master
        master.title("Scoring System GUI")
        master.geometry("500x750+75+60")

        self.label = Label(master, text="GUI")
        self.label.pack()

        self.team_button = Button(master, text="Teams", command=self.openTeams)
        self.team_button.pack()

    def openTeams(self):        
        self.label = Label(text="Team #1:")
        self.label.pack()
        team1 = open("team1.csv", "r")
        message = team1.read()
        text = Text(root, width = "50", height = "6", fg = "#000000")
        text.pack()
        text.insert(END, message)
        redteam.close()

这是当前输出的照片:

Tkinter GUI

2 个答案:

答案 0 :(得分:0)

在插入新字符串之前,您必须清除Text小部件。只需在text.insert(...)语句前插入以下行:

text.delete('1.0', END)

顺便说一句,如果您只想显示一个列表而不是编辑它(我猜这是这种情况),Listbox小部件通常是比Text小部件更好的选择。< / p>

答案 1 :(得分:0)

为此,您需要在method中创建另一个class并将其解析为另一个button作为回调命令。

def reset_func(self):
    self.text.delete('1.0', END)

使用此方法将其解析为button的命令时,它将清除文本小部件中的内容。