动态更改小部件

时间:2019-07-08 15:03:57

标签: python tkinter

我需要更改tkinter GUI上的小部件的限制,并且一旦GUI打开并运行,就需要动态更改它们。

例如,一旦GUI运行,就需要更改小部件的上下限。

我尝试了各种destroy()forget()方法来删除小部件并替换原来的小部件,但是我觉得这不是最好的方法。

我还尝试过创建窗口小部件的另一个实例,以希望原始窗口消失了,但不足为奇的是,这也不起作用(我不得不试一试以发现会发生什么情况。)

我是否有更好的方法来做到这一点,或者我应该forget()说小部件并创建新的小部件实例?

    import tkinter
    from tkinter import ttk
    from tkinter import *
    from tkinter.ttk import *

    def moveStuff():
        setres=5 
        mySlider=tkinter.Scale(root,from_=-45,to=45,resolution=setRes,
                         orient=tkinter.HORIZONTAL,bd=0)
        #mySlider.place(x=10,y=50)

    setres=1

    root = tkinter.Tk()
    root.title("Open file window")
    root.geometry("200x200")

    otherButton=tkinter.Button(root,text="MOVE STUFF",command=moveStuff)
    otherButton.pack()

    mySlider=tkinter.Scale(root,from_=-90,to=90,resolution=setres,
                     orient=tkinter.HORIZONTAL,bd=0)
    mySlider.place(x=10,y=100)

理想情况下,我希望缩放小部件在按下按钮时更改其上下限。

1 个答案:

答案 0 :(得分:1)

您的进口货到处都是。还有为什么不简单地修改现有滑块的配置,而不是创建一个新滑块呢?

import tkinter as tk

def moveStuff():
    mySlider.config(from_=-45, to=45) #change slider max and min

setres=1

root = tk.Tk()
root.title("Open file window")
root.geometry("200x200")

otherButton=tk.Button(root,text="MOVE STUFF",command=moveStuff)
otherButton.pack()

mySlider=tk.Scale(root,from_=-90,to=90,resolution=setres,
                 orient=tk.HORIZONTAL,bd=0)
mySlider.place(x=10,y=100)

root.mainloop()