Обновление кадра с помощью Tkinter - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь анимировать кадр в Tkinter, но не могу этого сделать. Когда я использую sh для обновления ползунков, я получаю белый экран, который не отвечает. Я следил за другими примерами выполнения

self.after(1000, self.UpdateSliders)

и

app.mainloop()

, но поскольку я использую фреймы и меняю их местами при нажатии кнопки, он не обновляется sh рама. Как мне обновить sh ползунки для перемещения по этому кадру?

Код для смены кадров

# Setup and declaring pages
class SoundBoard(Tk):
def __init__(self, *args, **kwargs):
    Tk.__init__(self, *args, **kwargs)
    
    # Window Config
    self.title("Sound Board")
    self.geometry('975x500')
    self.iconbitmap(FileDir + 'Images/Icons/Black Icon.ico')

    #Setting Up frames for each window
    container = Frame(self)
    container.pack(side="top", fill="both", expand = True)
    container.grid_rowconfigure(0, weight=1)
    container.grid_columnconfigure(0, weight=1)

    #Create a blank dictionary which will be populated later
    self.frames = {}

    #Populate dictionary with all the pages (frame) in which the program uses
    for F in (MainWindow,
              ButtonsWindow,
              SliderWindow,
              DisplayWindow,
              ):
        frame = F(container, self)
        self.frames[F] = frame
        frame.grid(row=0, column=0, sticky="nsew")
        frame.configure(bg='#1b191a')

    # Show the Main window
    self.show_frame(MainWindow)

# Moves the frame to the front
def show_frame(self, cont):

    frame = self.frames[cont]
    frame.tkraise()

Код для моего мэйнфрейма, в котором я хочу, чтобы ползунки обновлялись.

class MainWindow(Frame):
def __init__(self, parent, controller):
    Frame.__init__(self,parent)
    # Set up sliders
    self.Slider1 = Slider(self,100,60,200,15,15,35,0,80,"White","Black")
    self.Slider2 = Slider(self,100,60,200,15,15,35,0,80,"White","Black")
    self.Slider3 = Slider(self,100,60,200,15,15,35,0,80,"White","Black")
    self.Slider4 = Slider(self,100,60,200,15,15,35,0,80,"White","Black")
    self.Slider5 = Slider(self,100,60,200,15,15,35,0,80,"White","Black")
    self.Slider6 = Slider(self,100,60,200,15,15,35,0,80,"White","Black")

    while True:
        self.after(1000, self.UpdateSliders)

# Set value of the sliders
def UpdateSliders(self):
    self.Slider1.SetVal(self.Board1, SavedInfo.ReadSliders("Slider1"))
    self.Slider2.SetVal(self.Board1, SavedInfo.ReadSliders("Slider2"))
    self.Slider3.SetVal(self.Board1, SavedInfo.ReadSliders("Slider3"))
    self.Slider4.SetVal(self.Board1, SavedInfo.ReadSliders("Slider4"))
    self.Slider5.SetVal(self.Board1, SavedInfo.ReadSliders("Slider5"))
    self.Slider6.SetVal(self.Board1, SavedInfo.ReadSliders("Slider6"))
    self.update()
    print("S")

1 Ответ

1 голос
/ 11 июля 2020

Я пишу для вас пример кода с мануалом изменения вкладок и автоматизацией. Я надеюсь, что будет полезно изучить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...