如何在函数及其变量中使用tkinter

时间:2019-07-04 06:24:35

标签: python-3.x tkinter

我想按开始按钮将“ Hello”存储在其他功能可以使用的变量中。然后,我想按“打印”按钮进行打印。

import tkinter

FONT = "Arial 16 bold"

window = tkinter.Tk()
B = tkinter.StringVar()

def main() :

    window.title("print")
    window.configure(bg="white")
    startButton = tkinter.Button(window, bg="white", font=FONT, text="START", command=myList)
    startButton.grid(row=0, column=0)
    printButton = tkinter.Button(window, bg="white", font=FONT, text="Print", command=printList)
    printButton.grid(row=0, column=1)

    tkinter.mainloop()

def myList():
    A = "Hello"
    global B 
    B.set(A)

def printList():

    value = B.get()
    printLabel = tkinter.Label(window, bg="white", font=FONT, textvariable=value)
    printLabel.grid(row=1, column=1)

main()

我不知道如何以其他函数可以使用的方式存储变量。

1 个答案:

答案 0 :(得分:0)

问题是这两行代码:

value = B.get()
printLabel = tkinter.Label(window, bg="white", font=FONT, textvariable=value)

您正在将textvariable选项的值设置为普通的python变量。那行不通,它必须是特殊的tkinter变量之一。

如果您要做的只是在B中显示值,那么除了设置textvariable之外,无需执行其他任何操作。您无需调用B.get()或将B声明为全局变量:

def printList():
    printLabel = tkinter.Label(window, bg="white", font=FONT, textvariable=B)
    printLabel.grid(row=1, column=1)

如果您不希望以这种方式链接它们,则可以获取B的值并将其分配给text属性而不是textvariable属性:< / p>

def printList():
    value = B.get()
    printLabel = tkinter.Label(window, bg="white", font=FONT, text=value)
    printLabel.grid(row=1, column=1)