如何使用Python在Tkinter标签中打印变量?

时间:2016-03-06 16:10:38

标签: python tkinter

如何在GUI标签中打印变量?

  1. 我应该将它设为全局变量并将其放在textvariable = a?

  2. 我能以某种方式将其重定向到textvariable吗?

  3. 还有其他方法吗?

  4. #Simple program to randomly choose a name from a list
    
    from Tkinter import * #imports Tkinter module
    import random  #imports random module for choice function
    import time #imports time module
    
    l=["Thomas", "Philip", "John", "Adam", "Kate", "Sophie", "Anna"]       #creates a list with 7 items
    def pri():  #function that asigns randomly item from l list to     variable a and prints it in CLI
        a = random.choice(l) #HOW CAN I PRINT a variable IN label     textvarible????
        print a     #prints in CLI
        time.sleep(0.5)
    
    
    root = Tk()                 #this
    frame = Frame(root)         #creates
    frame.pack()                #GUI frame
    bottomframe = Frame(root)
    bottomframe.pack( side = BOTTOM )
    
    #GUI button
    redbutton = Button(frame, text="Choose name", fg="red", command = pri)
    redbutton.pack( side = LEFT)
    
    #GUI label
    var = StringVar()
    label = Label(bottomframe, textvariable= var, relief=RAISED )
    label.pack( side = BOTTOM)
    
    root.mainloop() 
    

1 个答案:

答案 0 :(得分:1)

from Tkinter import *
import time
import random

l=["Thomas", "Philip", "John", "Adam", "Kate", "Sophie", "Anna"]       #creates a list with 7 items
def pri():  #function that asigns randomly item from l list to     variable a and prints it in CLI
    a = random.choice(l) #HOW CAN I PRINT a variable IN label     textvarible????
    print a     #prints in CLI
    time.sleep(0.5)
    return a


root = Tk()

var = IntVar() # instantiate the IntVar variable class
var.set("Philip")     # set it to 0 as the initial value

# the button command is a lambda expression that calls the set method on the var,
# with the var value (var.get) increased by 1 as the argument
Button(root, text="Choose name", command=lambda: var.set(pri())).pack()

# the label's textvariable is set to the variable class instance
Label(root, textvariable=var).pack()

mainloop()