急求Python高手!!!Python Tkinter 中的什么组件可以流动显示文字?或者如何实现文字流动显示?

需要用Tkinter中的组件实现这样一个功能,可以显示很长一段文字,但每次只能显示一行(最好是能流动显示),显示一定时间后将文字清空。... 需要用Tkinter中的组件实现这样一个功能,可以显示很长一段文字,但每次只能显示一行(最好是能流动显示),显示一定时间后将文字清空。 展开
 我来答
百度网友4826b3c
2014-09-04 · TA获得超过5024个赞
知道大有可为答主
回答量:2999
采纳率:96%
帮助的人:1310万
展开全部
试一试这个是否符合你的需求。
from Tkinter import *
import time
root = Tk()
root.title("Marquee")
root.geometry("320x240+100+100")
show_str = StringVar(root)
show_str.set("this")
source_str = "This is a long string."
stopflag = True
pos = 0
def marquee(widget):
   textwidth = 10
   strlen = len(source_str)
   global pos
   if strlen - pos < 10:
       show_str.set(source_str[pos:pos+textwidth] + source_str[0:10 - strlen + pos])
   else:
       show_str.set(source_str[pos:pos+textwidth])
   pos += 1
   if pos > strlen:
       pos = 0
   global stopflag
   if stopflag:
       widget.after(300, marquee, widget)
show_lb = Label(root, textvariable=show_str)
show_lb.place(x=20, y=20, width=200, height=30)
def startmarque():
   global stopflag
   stopflag = True
   marquee(show_lb)
def stopmarquee():
   global stopflag
   stopflag = False
button1 = Button(root, text="start", command=startmarque)
button2 = Button(root, text="stop", command=stopmarquee)
button1.place(x=20, y=100, width=50, height=30)
button2.place(x=200, y=100, width=50, height=30)
root.mainloop()
追问
谢谢你的回答,我是希望它可以自动流动,不需要点击按钮的,如果显示完成就自动关闭。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式