我需要更改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)
理想情况下,我希望缩放小部件在按下按钮时更改其上下限。
答案 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()