2013-07-17 194 views
0

目前,我有這個水平滾動文本的python tkinter標籤。Python Tkinter水平自動滾動標籤

deli = 100 
svar = tk.StringVar() 
labl = tk.Label(root, textvariable=svar, height=1,width=20,fg='skyblue',bg='black',font=('calibri',(13))) 
def shif(): 
    shif.msg = shif.msg[1:] + shif.msg[0] 
    svar.set(shif.msg) 
    root.after(deli, shif) 
shif.msg=' This is a Test This is a Test This is a Test' 
shif() 

但我發現標籤的運動是相當生澀。我認爲這是因爲每次它移動(或移位)1個字符。有什麼方法可以獲得更流暢的輸出?

回答

0

如果您想要更流暢的動畫,請將文字放在畫布上。這樣做可以讓您將文本以小至1像素的增量移動。您可以簡單地插入整個文本屏幕,然後沿任意方向移動對象,畫布將管理剪輯文本。

+0

你的意思是使用'canvas.create_text'?它似乎不支持'textvariable'命令。對不起,如果這個問題聽起來很愚蠢。 –

+0

@ChrisAung:你爲什麼認爲你需要一個文本變量選項?您仍然可以隨時更改文字。儘管如此,如果你想讓你可以在畫布上嵌入一個標籤來獲得兩全其美的效果。 –