【问题标题】:Updating label inside of function in tkinter在 tkinter 中更新函数内部的标签
【发布时间】:2021-02-09 16:14:18
【问题描述】:

所以我在更新 tkinter 函数内部的标签(我想更改文本颜色)时遇到问题。当我使用变量存储标签时它可以正常工作,但是当我使用列表来执行此操作时,它不会。这是如何定义标签的。

for i in range(9):
    for a in range(9):
        if (NumbersSudoku[a][i] != 0):
            label_frame = Frame(root, width=35, height=35, bg="white")
            label_frame.grid_propagate(False)
            label_frame.grid(row=i, column=a)
            label[i][a] = Label(label_frame, text=NumbersSudoku[a][i], fg="blue", borderwidth=2, width=4, height=2,
                                relief="groove")
            label[i][a].grid(row=i, column=a)
        else:
            label_frame = Frame(root, width=35, height=35, bg="white")
            label_frame.grid_propagate(False)
            label_frame.grid(row=i, column=a)
            label[i][a] = Label(label_frame, borderwidth=2, textvariable=v[i][a], relief="groove", width=4, height=2,
                                fg='brown')
            label[i][a].grid(row=i, column=a)
            print(type(label[i][a]))
gnabel = Label(root, borderwidth=2, text='', relief="groove", width=4, height=2,
               fg='brown')
gnabel.grid(row=14, column=14)

这就是我定义列表的方式。

label = []
for x in range(9):
    label.append([])
    for y in range(9):
        label[x].append([])

在函数内部打印变量类型和列表返回不同的结果,即使在函数外部检查它返回相同的

def base_info():
    global gnabel
    global label
    print(type(gnabel))  # <class 'tkinter.Label'>
    print(type(label))  # <class 'NoneType'>
............

# label[y][x] = Label(root, text=NumbersSudoku[y][x], fg="green").grid(row=y,column=x) # doesnt work
                # gnabel = Label(root, text=NumbersSudoku[y][x], fg="orange").grid(row=14, column=14) # work

【问题讨论】:

标签: python-3.x tkinter label


【解决方案1】:

我不能就你的例子给你一个真正的答案,但我可以给你一个使用函数 .config() 的例子

label = Label(root, fg = "green")
label.pack()

def update_label():
    label.config(fg = "red")

update_label()

我所做的解释是,我创建了前景为绿色的标签,并调用了一个将其更改为红色的函数。只要您使用 config() 函数,您就可以对文本、大小等进行此操作。

如果你不是很明白我在说什么,你可以找到很多 youtube 视频,它们可以更好地解释 config() 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 2017-04-12
    相关资源
    最近更新 更多