Причина, по которой это не работает, заключается в том, что вы используете неправильный способ завершить программу в quit_pressed. То, что вы делаете сейчас, это убивает фрейм себя, а не корневой фрейм. Фрейм self - это новый фрейм, который вы привязали к корневому фрейму, поэтому, когда вы уничтожаете фрейм self, вы не уничтожаете корневой фрейм. Это может показаться странным из-за моего стиля печати, поэтому позвольте мне привести пример.
В настоящее время у вас есть
def quit_pressed(self):
self.destroy() #This destroys the current self frame, not the root frame which is a different frame entirely
Вы можете исправить это, изменив функцию на
def quit_pressed(self):
quit() #This will kill the application itself, not the self frame.