急求Python高手!!!Python Tkinter 中的什么组件可以流动显示文字?或者如何实现文字流动显示?
需要用Tkinter中的组件实现这样一个功能,可以显示很长一段文字,但每次只能显示一行(最好是能流动显示),显示一定时间后将文字清空。...
需要用Tkinter中的组件实现这样一个功能,可以显示很长一段文字,但每次只能显示一行(最好是能流动显示),显示一定时间后将文字清空。
展开
1个回答
展开全部
试一试这个是否符合你的需求。
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()
追问
谢谢你的回答,我是希望它可以自动流动,不需要点击按钮的,如果显示完成就自动关闭。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询