Разрывая в Tkinter окно альфа-анимации: Raspberry Pi - PullRequest
0 голосов
/ 14 октября 2018

Ниже приведен мой алгоритм для анимации затухания для окна 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 до 256 МБ
  3. Попробовал с помощью tkRootWindow.update () и tkRootWindow.update_idlestasks ()

Ничего из этого не помогло мне.

Я что-то упустил?

...