繁体   English   中英

如何更新 tkinter 中的小部件?

[英]How to update a widget in tkinter?

所以我正在用 python 制作一个 tkinter GUI 应用程序,你如何让它忘记 label 而不是按下按钮时的按钮?

import tkinter as tk
window = tk.Tk()
def func():
    mainframe = tk.Frame()
    label = tk.Label(text = "Label", master = mainframe)
    label.pack()
    mainframe.pack()
def function():
    mainframe = tk.Frame()
    button = tk.Button(text = "Button", master = mainframe, command = lambda: remove(mainframe))
    button.pack()
    mainframe.pack()
    func()
def remove(mainframe):

    mainframe.forget()

function()
window.mainloop()

我在编码方面很糟糕,这可能是一个非常愚蠢的问题。

import tkinter as tk

window = tk.Tk()

labelframe = None


def func():
    global labelframe
    labelframe = tk.Frame()
    label = tk.Label(text="Label", master=labelframe)
    label.pack()
    labelframe.pack()


def function():
    global label
    buttonframe = tk.Frame()
    button = tk.Button(text="Button", master=buttonframe, command=lambda: remove(labelframe))
    button.pack()
    buttonframe.pack()
    func()


def remove(to_forget):
    to_forget.forget()


function()
window.mainloop()

只需添加一个label.forget() ,如下所示:

import tkinter as tk
window = tk.Tk()
def func():
    mainframe = tk.Frame()
    label = tk.Label(text = "Label", master = mainframe)
    label.pack()
    label.forget()
    mainframe.pack()
def function():
    mainframe = tk.Frame()
    button = tk.Button(text = "Button", master = mainframe, command = lambda: remove(mainframe))
    button.pack()
    mainframe.pack()
    func()
def remove(mainframe):

    mainframe.forget()

function()
window.mainloop()

我明白了,我只需要定义一个全局变量并将其更改为像这样的大型机。 感谢您的帮助:)我真的很感激。

    import tkinter as tk
    window = tk.Tk()
    def func():
        mainframe = tk.Frame()
        label = tk.Label(text = "Label", master = mainframe)
        label.pack()
        mainframe.pack()
        global x
        x = mainframe
    def function():
        mainframe = tk.Frame()
        button = tk.Button(text = "Button", master = mainframe, command = lambda: 
    remove(mainframe))
        button.pack()
        mainframe.pack()
        func()
    def remove(mainframe):

        x.forget()

    function()
    window.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM