[英]Updating multiple create_text objects in Tkinter Canvas
我想不斷更新時間 output 覆蓋在具有背景的 canvas 上。 當文本位於 label 上時,我可以這樣做,但是 label 不允許我添加多個文本對象而不在文本周圍創建背景。 我可以添加一個 static 時間,但是一旦我嘗試創建一個 function 來簡單地創建一個文本,我似乎得到了一個錯誤
所以這段代碼工作正常:
timenow = time.strftime('%H:%M:%S')
root = Tk()
c = Canvas(root, width = 500, height = 333)
c.pack()
image = PhotoImage(file = 'C:/Users/Khalid Byra/Desktop/Python Alarm Clock Project/wallpaper.gif')
c.create_image(0, 0, image=image, anchor=NW)
c.create_text(250, 166.5, text = timenow, font=('Arial', 24), fill = 'white', anchor = CENTER)
但是,當我嘗試將其更改為這樣的方法時:
c.create_image(0, 0, image=image, anchor=NW)
def write(x=250, y=166.5, text=timenow, font=('Arial', 24), fill='white', anchor=CENTER):
c.create_text(x, y, text, fill, anchor, text)
write()
我收到以下錯誤:
*(args + self._options(cnf, kw))))
_tkinter.TclError:未知選項“22:27:34”
好吧,沒關系,我想通了,應該這樣做:
def write(x=250, y=166.5, text=timenow, font=('Arial', 32), fill='white', anchor=CENTER): c.create_text(x, y, text=text, fill=填充,錨=錨)
我的下一個問題是我正在使用這種方法來更新時鍾:
def tick():
global timenow
time2 = time.strftime('%H:%M:%S')
if time2 != timenow:
timenow = time2
write(text = time2)
c.after(200, tick)
tick()
但這里的問題是它把新文本放在舊文本上,使它變得一團糟。 所以現在我需要弄清楚在新文本出現時刪除舊文本? 但它沒有分配給變量,所以我不確定如何
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.