tkinter - 使用平滑的“褪色”动画使帧向右隐藏

Posted

技术标签:

【中文标题】tkinter - 使用平滑的“褪色”动画使帧向右隐藏【英文标题】:tkinter - make a frame hide to the right with smooth "fading" animation 【发布时间】:2022-01-21 11:32:36 【问题描述】:

我做了一个简单的程序,主窗口有一个框架hideout,它会慢慢移出屏幕

但它不起作用

import tkinter as tk
from tkinter import ttk
import time

root = tk.Tk()
root.geometry('360x640')

hideout = tk.Frame(root, background= '#fff', width = 360, height= 640)
def initial(*args):
    for i in range(361):
        time.sleep(0.01)
        about.place(x=i,y=0)

root.after(0,initial)
root.mainloop()

这里有什么问题?

【问题讨论】:

“但它不起作用”太含糊了。请具体说明具体方式并包含任何错误消息。 【参考方案1】:

您正在使用未定义的变量:当在about 上调用place() 时,您的意思可能是hideout

“淡出”可以直接用root.after回调控制;使用time.sleep 会在动画期间阻塞你的GUI;这是不可取的。

这是一个工作示例:

import tkinter as tk

def initial(t=0):
    hideout.place(x=t, y=0)
    if t > 360:
        return
    root.after(10, initial, t+1)

if __name__ == '__main__':

    root = tk.Tk()
    root.geometry('360x640')
    hideout = tk.Frame(root, background='#fff', width=360, height=640)

    initial()
    root.mainloop()

【讨论】:

以上是关于tkinter - 使用平滑的“褪色”动画使帧向右隐藏的主要内容,如果未能解决你的问题,请参考以下文章

如何平滑地将 CSS 动画恢复到当前状态?

平滑删除自定义列表视图中的项目

jQuery折叠褪色的div和扩展动画问题

褪色答题技巧

有啥方法可以覆盖 iOS 7 中的 titleView 褪色?

使用 Tkinter 在 GIF 中播放动画 [重复]