在Tkinter窗口中撕裂alpha动画:Raspberry Pi

时间:2018-10-14 04:29:07

标签: python tkinter raspberry-pi raspberry-pi3 double-buffering

以下是我的Tkinter窗口淡出动画的算法:

def schedAnim(tkRootWindow):

    fadeout = Timer(launcher, [tkRootWindow])
    fadeout.start()

def launcher(tkRootWindow):
    alpha = tkRootWindow.attributes("-alpha")
    def fadeAlpha(alpha):
        if alpha < 0:
            tkRootWindow.quit()
        else:
            tkRootWindow.attributes("-alpha", alpha)
            alpha -= .02
            tkRootWindow.after(32, fadeAlpha, alpha)

    tkRootWindow.after(2, fadeAlpha, alpha)
    return

此算法效果很好,大部分情况下我都能看到动画。 唯一的问题是在1280x720屏幕上,有撕裂感。

我最好的猜测是此Tkinter窗口没有发生双重缓冲。 否则RPi硬件不足以在全屏窗口上处理30 FPS动画。

我当前的配置:

  • Raspberry Pi 3模型B
  • Xorg + Metacity

到目前为止我尝试过的事情:

  1. 在xcompmgr + Openbox组合上进行了测试
  2. 图形内存从64 MB增加到256 MB
  3. 尝试使用tkRootWindow.update()和tkRootWindow.update_idlestasks()

这些都不适合我。

我想念什么吗?

0 个答案:

没有答案