2013-07-17 146 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:你为什么认为你需要一个文本变量选项?您仍然可以随时更改文字。尽管如此,如果你想让你可以在画布上嵌入一个标签来获得两全其美的效果。 –