如何在Tkinter中按字符设置文本动画?

大上部

所以我知道在python窗口中您可以使用此..

for char in introstring:
    sleep(0.2)
    sys.stdout.write(char)
    sys.stdout.flush()

它将以0.2的速度逐个字符显示在窗口中的文本

如何将其转换为Tkinter窗口?例如,我有以下文字:

canvas.create_text((720,454),text="Just in case you start to feel sniffily, or something",fill="white", font=('arial'))

有没有办法获得相同的动画,但是在Tkinter GUI中,我已经设置好了?我已经听说过有关.after命令的信息,但是我似乎找不到如何将其应用于此功能。

2号环

这是一个非常简单的示例,将一个字符一个字符地打印到画布上,每个字符之间的延迟为500毫秒。

import Tkinter as tk

root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack()

canvas_text = canvas.create_text(10, 10, text='', anchor=tk.NW)

test_string = "This is a test"
#Time delay between chars, in milliseconds
delta = 500 
delay = 0
for i in range(len(test_string) + 1):
    s = test_string[:i]
    update_text = lambda s=s: canvas.itemconfigure(canvas_text, text=s)
    canvas.after(delay, update_text)
    delay += delta

root.mainloop()

该代码已在Python 2.6上进行了测试。要在Python 3上运行它,您需要将import语句更改import tkinter as tk


这是一个更复杂的示例,显示输入到Entry小部件中的文本。Enter在“条目”小部件中按时会显示文本

#!/usr/bin/env python

''' animate text in a tkinter canvas 

    See http://stackoverflow.com/q/34973060/4014959
    Written by PM 2Ring 2016.01.24
'''

import Tkinter as tk

class Application(object):
    def __init__(self):
        root = tk.Tk()
        self.canvas = tk.Canvas(root)
        self.canvas.pack()
        self.canvas_text = self.canvas.create_text(10, 10, text='', anchor=tk.NW)

        self.entry = tk.Entry(root)
        self.entry.bind("<Return>", self.entry_cb)
        self.entry.pack()
        root.mainloop()

    def animate_text(self, text, delta):
        ''' Animate canvas text with a time delay given in milliseconds '''
        delay = 0
        for i in range(len(text) + 1):
            update_text = lambda s=text[:i]: self.canvas.itemconfigure(self.canvas_text, text=s)
            self.canvas.after(delay, update_text)
            delay += delta

    def entry_cb(self, event):
        self.animate_text(self.entry.get(), 250) 

app = Application()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中按顺序为TextViews设置动画?

来自分类Dev

如何在右侧设置文本动画

来自分类Dev

当我按向右箭头时,如何在 lua 中为精灵设置动画?

来自分类Dev

如何在 JavaFX 中为文本节点的字体大小设置动画

来自分类Dev

如何在 SVG 中设置嘴巴动画?

来自分类Dev

如何在不按 Python3 中的按钮的情况下更改 tkinter 标签的文本?

来自分类Dev

Tkinter Python中的文本动画?

来自分类Dev

如何按字符在UILabel中包装文本

来自分类Dev

如何在Tkinter Entry小部件中设置以查看文本结尾?

来自分类Dev

如何在tkinter中设置scrollText边框?

来自分类Dev

如何在 tKinter 中设置条件

来自分类Dev

如何在目录中按字符数拆分文本文件

来自分类Dev

如何使用CSS在Javafx中为文本设置动画?

来自分类Dev

如何在 Tkinter 中为事件启动动画循环?

来自分类Dev

如何在文本中设置div?

来自分类Dev

如何在JQuery中设置文本样式?

来自分类Dev

如何在XCTest中设置UItextfield文本

来自分类Dev

如何在TextField中设置文本填充?

来自分类Dev

如何在多列中设置文本?

来自分类Dev

如何在tabSpec文本中设置颜色?

来自分类Dev

如何在代码中设置提示文本?

来自分类Dev

如何在TextField中设置文本填充?

来自分类Dev

如何在 ViewPager 的布局中设置文本

来自分类Dev

如何在 EditText 中设置浮动文本?

来自分类Dev

如何在 JButton 中设置文本颜色?

来自分类Dev

如何在D3中为文本锚定动画

来自分类Dev

如何在CSS中自动为文本突出显示动画?

来自分类Dev

Android如何在textView中链接“爆炸式”文本动画?

来自分类Dev

如何在页面中心显示文本,并在滑块之后为该文本设置动画?

Related 相关文章

热门标签

归档