Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter用于循环,从滑块更新按钮文本_Python_Tkinter - Fatal编程技术网

Python Tkinter用于循环,从滑块更新按钮文本

Python Tkinter用于循环,从滑块更新按钮文本,python,tkinter,Python,Tkinter,我目前正在尝试学习Tkinter中的for循环,但很难在网上找到很多信息。我希望发生的是,当滑块被更改时,与它相邻的标签内的文本将实时更新为滑块上显示的数字。下面是我当前的代码。提前谢谢你的帮助 import tkinter as tk window = tk.Tk() def get(test): for i in range (6): Btns.config (text =scale.get()) for i in range (6): Btns = tk

我目前正在尝试学习Tkinter中的for循环,但很难在网上找到很多信息。我希望发生的是,当滑块被更改时,与它相邻的标签内的文本将实时更新为滑块上显示的数字。下面是我当前的代码。提前谢谢你的帮助

import tkinter as tk
window = tk.Tk()

def get(test):
    for i in range (6):
        Btns.config (text =scale.get())

for i in range (6):
    Btns = tk.Button(window, bg = "blue", width = 5, height = 1)
    Btns.grid (row = i, column = 5)

for i in range (6):
    scale = tk.Scale(window, orient = "horizontal", command = get)
    scale.grid (row = i, column = 6)

window.mainloop()

问题是因为所有的小部件都被覆盖了。
Btn
scale
都是最后一个
tk.Button
实例或
tk.scale
实例

您可以使用列表保存这些小部件,并通过迭代获得这些值:

import tkinter as tk

window = tk.Tk()


def get(test):
    for i in range(6):
        Btns[i].config(text=scales[i].get())

# two list of widgets
Btns = []
scales = []

for i in range(6):
    Btn = tk.Button(window, bg="blue", width=5, height=1, text=0)
    Btns.append(Btn)
    Btn.grid(row=i, column=5)

for i in range(6):
    scale = tk.Scale(window, orient="horizontal", command=get)
    scales.append(scale)
    scale.grid(row=i, column=6)

window.mainloop()

问题是因为所有的小部件都被覆盖了。
Btn
scale
都是最后一个
tk.Button
实例或
tk.scale
实例

您可以使用列表保存这些小部件,并通过迭代获得这些值:

import tkinter as tk

window = tk.Tk()


def get(test):
    for i in range(6):
        Btns[i].config(text=scales[i].get())

# two list of widgets
Btns = []
scales = []

for i in range(6):
    Btn = tk.Button(window, bg="blue", width=5, height=1, text=0)
    Btns.append(Btn)
    Btn.grid(row=i, column=5)

for i in range(6):
    scale = tk.Scale(window, orient="horizontal", command=get)
    scales.append(scale)
    scale.grid(row=i, column=6)

window.mainloop()

您可以使用
lambda
简化它:

将tkinter作为tk导入
window=tk.tk()
对于范围(6)中的i:
按钮(窗口,fg=“白色”,bg=“蓝色”,宽度=5,高度=1)
btn.网格(行=i,列=5)
scale=tk.scale(window,orient=“horizontal”,command=lambda v,b=btn:b.config(text=v))
比例网格(行=i,列=6)
window.mainloop()

您可以使用
lambda
简化它:

将tkinter作为tk导入
window=tk.tk()
对于范围(6)中的i:
按钮(窗口,fg=“白色”,bg=“蓝色”,宽度=5,高度=1)
btn.网格(行=i,列=5)
scale=tk.scale(window,orient=“horizontal”,command=lambda v,b=btn:b.config(text=v))
比例网格(行=i,列=6)
window.mainloop()

非常感谢您非常感谢