如何在python中生成自动更新结果的画布文本?
我正在尝试制作一个掷骰子模拟器,我希望结果以文本形式显示在红色框中。 我创建了一个画布来创建一个矩形框,在画布上我创建了一个txt行,结果应该显示在哪里,但我不知道如何在canvax矩形框中显示结果。 我是IT的一年级生,我真的在为如何做到这一点而挣扎如何在python中生成自动更新结果的画布文本?,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正在尝试制作一个掷骰子模拟器,我希望结果以文本形式显示在红色框中。 我创建了一个画布来创建一个矩形框,在画布上我创建了一个txt行,结果应该显示在哪里,但我不知道如何在canvax矩形框中显示结果。 我是IT的一年级生,我真的在为如何做到这一点而挣扎 from tkinter import * from tkinter import messagebox from PIL import Image, ImageTk import random root = Tk() root.geomet
from tkinter import *
from tkinter import messagebox
from PIL import Image, ImageTk
import random
root = Tk()
root.geometry('700x700')
root.title('Dice Rolling Simulation')
bg = PhotoImage(file ="bg.png")
label = Label(root, image=bg)
label.place(x=0, y=0, relwidth =1, relheight = 1)
l0 = Label(root, text="")
l0.pack()
l1 = Label(root, text="DICE SIMULATOR", fg="white",
bg='#000009',
font="Helvetica 30 bold italic")
l1.pack()
# images
dice = ['die1.png', 'die2.png', 'die3.png', 'die4.png', 'die5.png', 'die6.png']
image1 = ImageTk.PhotoImage(Image.open(random.choice(dice)))
label1 =Label(root, image=image1)
label1.image = image1
label1.pack(expand=True)
count = 0
size = 26
def rolling_dice():
image1 = ImageTk.PhotoImage(Image.open(random.choice(dice)))
# update image
label1.configure(image=image1)
# keep a reference
label1.image = image1
def contract():
global count, size
if count <=10 and count > 0:
size -=2
my_button.config(font=("Helvetica", size))
count -=1
root.after(10, contract)
def expand():
global count,size
if count <10:
size +=2
my_button.config(font=("Helvetica", size))
count +=1
root.after(10, expand)
elif count == 10:
contract()
def exit():
response=messagebox.askyesno('Exit','Are you sure you want to exit?')
if response:
root.destroy()
canvas= Canvas(root, width = 200, height = 50, bg = "red")
canvas.pack(pady = 5)
canvas.create_text(100, 25,fill="darkblue",font="Times 20 italic bold",
text= image1)
my_button = Button(root, text = "ROLL THE DICE", command = lambda : [expand(), rolling_dice()],
font = ("Helvetica",24), fg="blue")
my_button.pack(pady=20)
exit = Button(root, text = "Exit", command = exit, font = ("Helvetica",24), fg="red")
exit.pack(pady=10)
root.mainloop()
从tkinter导入*
从tkinter导入消息框
从PIL导入图像,ImageTk
随机输入
root=Tk()
根几何体('700x700')
root.title('骰子滚动模拟')
bg=PhotoImage(file=“bg.png”)
标签=标签(根,图像=背景)
label.place(x=0,y=0,relwidth=1,relheight=1)
l0=标签(根,文本=)
l0.pack()
l1=标签(根,text=“骰子模拟器”,fg=“白色”,
bg='#000009',
font=“Helvetica 30粗体斜体”)
l1.pack()
#图像
dice=['die1.png'、'die2.png'、'die3.png'、'die4.png'、'die5.png'、'die6.png']
image1=ImageTk.PhotoImage(Image.open(random.choice(骰子)))
label1=标签(根,图像=图像1)
label1.image=image1
标签1.pack(expand=True)
计数=0
尺寸=26
def滚动骰子():
image1=ImageTk.PhotoImage(Image.open(random.choice(骰子)))
#更新图像
标签1.configure(image=image1)
#保留一份推荐信
label1.image=image1
def contract():
全局计数、大小
如果计数为0:
尺寸-=2
my_button.config(字体=(“Helvetica”,大小))
计数-=1
根。后(10,合同)
def expand():
全局计数、大小
如果count您需要保存对文本项的引用,然后使用itemconfigure
方法更改文本:
text_item = canvas.create_text(100, 25,...)
...
canvas.itemconfigure(text_item, text="something")