Автоматическое изменение размера окна при настройке - PullRequest
0 голосов
/ 11 октября 2018

Мы пытаемся перерисовывать окно каждый раз, когда оно изменяется, и это отрывается от нашего текущего кода:

def draw_frames(self):
    self.subFrameLeft = Frame(self.name, bg=LightGray, height=self.height / 
    2, width=self.width / 2 - 5,
                              relief=RAISED)
    self.subFrameRight = Frame(self.name, bg=LightGray, height=self.height / 
    2, width=self.width / 2 - 5,
                               relief=RAISED)
    self.subFrameBottom = Frame(self.name, bg="#3C3F41", height=self.height 
    / 3, width=self.width, relief=RAISED)

    self.abortButton = Button(self.subFrameBottom, text="ABORT MISSION", 
    state=self.abort_button_state, bg="red",
                              command=self.abort_message_callback, 
    width=int(20/600 * self.width),
                              height=int(1.5/600 * self.height))

    self.statusLabel = Label(self.subFrameBottom, 
    text=self.status_label_text, fg=self.status_label_text_color,
                             bg="#808080", width= int(20/600 * self.width), 
    height=int(2/600 * self.width))

    self.subFrameLeft.place(x=0, y=5)
    self.subFrameRight.place(x=self.width / 2 + 5, y=5)
    self.subFrameBottom.place(x=0, y=self.height * 315 / 600)

    self.add_frame_features()

def destroy_frames(self):
    self.subFrameLeft.destroy()
    self.subFrameRight.destroy()
    self.subFrameBottom.destroy()

def update_size(self):
    self.width = self.name.winfo_width()
    self.height = self.name.winfo_height()

    self.destroy_frames()
    self.draw_frames()

root = Tk()
p = MyWindow(root)
def d(event):
    p.update_size()
root.bind('<Configure>',d)
root.mainloop()

В настоящее время программа вызывает ошибки при запуске, и это исправляется путем комментирования себя.destroy_frames (), однако тогда они все рисуют друг на друга.Любые предложения о том, как это исправить, очень помогли бы.

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