我一直试图制作一个简单的骰子滚动GUI,你按下一个按钮和一个骰子滚动,并在标签中给你输出。当我运行我的代码时,我得到“diceOutput”未定义的错误。这是我的代码:
Configuration cfg = new Configuration(Configuration.VERSION_2_3_21);
cfg.setClassForTemplateLoading(FTLUtility.class, ftlRootUrl);
cfg.setNumberFormat("computer"); // this will show the number without formatting
答案 0 :(得分:1)
您需要使用布局管理器在窗口中包含标签和按钮。我在这里使用了.pack()
您不需要全局变量diceOutput
。
然后,您需要在单击按钮后将新骰子卷指定给文本标签:
from tkinter import *
import random
window = Tk()
window.title("Dice")
def rollDice():
dice_roll_result = str(random.randint(1,6))
outlbl['text'] = dice_roll_result
roll = Button(window, text="Roll", command=rollDice)
roll.pack()
outlbl = Label(window, text='')
outlbl.pack()
window.mainloop()
答案 1 :(得分:0)
正如Reblochon Masque所示,您不需要textvariable=
更改Label
中的文字
...但如果您使用textvariable=
,则必须使用课程StringVar()
/ IntVar()
/等。
并且您必须使用variable.set()
更改StringVar()
/ IntVar()
/等中的值
它将更改Label
(顺便说一句:要获得价值,你必须使用variable.get()
)
import tkinter as tk
import random
# --- functions ---
def roll_dice():
dice_output.set( random.randint(1, 6) )
# --- main ---
window = tk.Tk()
window.title("Dice")
roll = tk.Button(window, text="Roll", command=roll_dice)
roll.pack()
dice_output = tk.StringVar()
output = tk.Label(window, textvariable=dice_output)
output.pack()
window.mainloop()