简体   繁体   中英

Gifs PySimpleGui?

is it possible to put a GIF or a video in a window using PySimpleGui? I have a code where it shows an image in the first window, where I would like to put an animated gif, I tried some ways but it didn't work.

[sg.Image(filename='2.png')], #window where I would like to show the gif

from asyncore import write
import PySimpleGUI as sg
import pyautogui 
import time 
import os 
t = time.sleep
gui = pyautogui


os.system('cls') # limpa o terminal
users = ['GUILHERME','GABRIEL','MATHEUS','RAUL','SATO','MAURICE']
workers = ['WORKER01','WORKER02','WORKER03','WORKER04']
sg.theme('DarkAmber')
global values
global hand 

hand= sg.InputText(key ='hand',do_not_clear = True, size =(20,1))
canal = sg.InputText(key ="canal", size =(20,1))
sleep1 = sg.InputText(key ="sleep1", size =(20,1))
sleep2 = sg.InputText(key ="sleep2", size =(20,1))
par = sg.InputText(key ="par", size =(20,1))
perc = sg.InputText(key ="perc", size =(20,1))
usu = sg.Listbox(users, key = 'usu',size = (20,1))
worker = sg.Listbox(workers, key = 'worker', select_mode="",size = (20,1))

layout1 = [

    [sg.Image(filename='2.png')],  #window where I would like to show the gif
    [sg.Text('Bem Vindo Usário, siga o questionamento para identificar seus dados:', size = (50,1))],
    [sg.Text("VALOR DA MÃO?" ,size = (25,1)),hand],
    [sg.Text("CANAL DE TRABALHO?", size = (25,1)),canal],
    [sg.Text("FREQUÊNCIA LATERAL? " ,size = (25,1)),sleep1],
    [sg.Text("FREQUÊNCIA VERTICAL?" ,size = (25,1)),sleep2],
    [sg.Text("QUAL PAR VOCÊ QUER?" ,size = (25,1)),par],
    [sg.Text("QUAL RANGE VOCÊ QUER?" ,size = (25,1)),perc],
    [sg.Text("QUAL PERFIL?",size =(25,1)),usu],  # SELECT MODE = MULTIPLE PARA SELECIONAR MAIS DE UMA OPÇÃO AO MESMO TEMPO 
    [sg.Text("QUAL WORKER?",size =(25,1)),worker], 
    [sg.Text("QUAL PRAZO?",size =(24,1)),sg.Radio("LONGO","prazo",True,key="longoprazo"),sg.Radio("CURTO","prazo",key="curtoprazo")], # sg.radio são definidas como True or False, então crie uma função 
    [sg.Text("QUAL LADO?",size =(24,1)),sg.Radio("DOWN","lado",True,key="ladodown"),sg.Radio("UP","lado",key="ladoup")],
    [sg.Button("Entrar"), sg.Button("Cancelar")],
    ]

def tratar_lado(): 
    if values['ladodown'] == True: 
        gui.write('DOWN')
    else: 
        gui.write('UP')

def tratar_prazo(): 
    if values['longoprazo'] == True: 
        gui.write('LONGO')
    else: 
        gui.write('CURTO')

def abrir_putty1():
    gui.press('Win');t(0.5);
    gui.write('PUTTY');t(0.5);gui.press('Return');t(1);gui.write('temporario');t(1);gui.press('Return');t(3) #gui.write(values['usu'][0])
    gui.write('batata123');gui.press('Return')    
    
def iniciar():
    gui.press('capslock')
    gui.press('Win');t(0.5); 
    gui.write('PUTTY');t(0.5);gui.press('Return');t(1);gui.write("####");t(1);gui.press('Return');t(2) #gui.write(values['usu'][0])
    gui.write('####');gui.press('Return');
    gui.write('cd');gui.press('tab');gui.write(values['worker'][0]);gui.press('tab');tratar_lado();gui.press('Return');print('A pasta local foi localizada com sucesso...');window.refresh()
    gui.write('nano coloca.tty',interval = 0.3);gui.press('Return');print('Preparando para editar o Putty');window.refresh()
    gui.hotkey('Ctrl','W');gui.write("LIMIT", interval = 0.3);(1);gui.press('Return');t(0.3) #pesquisa LIMIT no nano 
    gui.press('right', presses = 25, interval= 0.1);gui.press('Backspace', presses = 2);gui.write(values["hand"]);print('Primeira mão editada com sucesso...');window.refresh() #Edita a Primeira Mão 
    gui.hotkey('Ctrl', 'W');gui.write('limit.tty', interval = 0.1);t(0.5);gui.press('Return');gui.press('right', presses = 29, interval = 0.1);gui.press('Backspace', presses = 4, interval =0.1) # edita a segunda mão
    t(0.5);gui.write(values["hand"]);t(0.5);print('Segunda mão editada com sucesso...');window.refresh() #inputa a segunda mão e printa 

    gui.hotkey('Ctrl', 'W');t(0.5);gui.write('totordens', interval =0.1);t(0.5);pyautogui.press('Return');t(0.5);gui.press('right', presses = 33, interval= 0.2)
    t(0.5);gui.press('backspace', presses = 1, interval = 0.3);t(0.5);gui.write(values[canal]);print('Canal de trabalho editado com sucesso...');window.refresh()


def janela_acompanhamento(values2): 
    janela_layout =  [ 

            [sg.Text('DILLO BOT - INICIALIZADOR')],
            [sg.Multiline(reroute_stdout=True, size = (90,40))],
            [sg.Button('OK')]]
    janela_acompanhamento = sg.Window("Janela de Acompanhamento", janela_layout)

    while True: 
        event, values = janela_acompanhamento.read(timeout=50)
        if event in (sg.WIN_CLOSED, 'Fechar'): 
            break
        elif event == 'Entrar': 
         janela_acompanhamento.read
        elif event == 'OK':
            
            print("PROTOCOLO"+" "+"---->", end="  ");
            print("U:"+values2['usu'][0],end="  ")
            print("W:"+values2['worker'][0], end = " ")
            print("M:"+values2["hand"],end="  ")
            print("P:"+values2["par"],end="  ")
            print("R:"+values2["perc"],end="  ")
            print("C:"+values2["canal"],end="  ")
            print("S1:"+values2["sleep1"],end="  ")
            print("S2:"+values2["sleep2"],end="  ")
            
            window.refresh()    
            print('Bem vindo   '  + values2['usu'][0]+ '.      Prepare um café enquanto o Dillo Inicia!');window.refresh();iniciar()
            
            
window = sg.Window('Dillo Bot', layout1)
while True: 
    event, values = window.read()
    sg.theme('DarkAmber')
    if event in (None, "Quit"):
        break
    if event == 'Cancelar':
        break
    if event == 'Entrar': 
        window.hide()
        janela_acompanhamento(values)
window.close()

window where I would like to show the gif

If possible, should reduce your code to only something about your question, not in full code of your project.

Following code demo one way to show the GIF in a window.

import PySimpleGUI as sg

layout = [[sg.Image(sg.DEFAULT_BASE64_LOADING_GIF, key='-GIF-')]]
window = sg.Window("Title", layout)

while True:
    event, values = window.read(timeout=100)
    if event == sg.WIN_CLOSED:
        break
    elif event == sg.TIMEOUT_EVENT:
        window['-GIF-'].update_animation(sg.DEFAULT_BASE64_LOADING_GIF, time_between_frames=100)

window.close()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM