Кнопка Tkinter Расширяется, когда она не должна - PullRequest
0 голосов
/ 04 июля 2019

Я работал над текстовым приключением на python, используя Tkinter, и у меня есть кнопки, настроенные для обработки каждого действия из моей базы данных событий, которая находится в XML-документе. Я знаю, что цикл выполняется каждый раз, когда это необходимо изоператор печати, который я вставил. Но появляется только 1 кнопка, и она заполняет весь кадр, когда должна делиться им с другими кнопками.Может быть, я просто не помню, как использовать Tkinter.

Я пытался pack_propegate(0), чтобы ничего не работало, даже пытался отказаться от pack() для grid(), что дало некоторые действительно странные результаты, которых я не делал.не хочу.

Вот как выглядит мой экран при запуске игры

Что у меня есть

Что должно происходить

Это код для класса, да, импорт для tkinter и да, метод CreateActions работает, как показано моими комментариями о том, что цикл печати возвращается на консоль.И методы имеют отступ, вот как переполнение стека вставило его.

class CommandManager:
    def __init__(self, parent):
        self.Buttons = []
        self.Container = Frame(parent, bg=backgroundColor, highlightthickness=borderSize, highlightbackground=borderColor, height=parent.winfo_screenheight() * .1)
        self.Container.pack_propagate(0)
        self.Container.pack(side=BOTTOM, fill=X)

    def CreateActions(self, actions):

        for action in actions:
            print(action.text)
        # The above loop prints in order
        # test1
        # test2
        # test3
        # test4

        # Action Button 1 is the only button that appears on the screen as seen in the image
        actionButton1 = Button(self.Container, text=actions[0].text, bg=backgroundColor, fg=borderColor, padx=50, pady=50, font='System 32', width=int(round(self.Container.winfo_width() * .2)))
        actionButton1.pack_propagate(1)
        actionButton1.pack(side=LEFT, expand=False)
        actionButton2 = Button(self.Container, text=actions[1].text, bg=backgroundColor, fg=borderColor, padx=50, pady=50, font='System 32', width=int(round(self.Container.winfo_width() * .2)))
        actionButton2.pack(side=LEFT, expand=False)
        actionButton3 = Button(self.Container, text=actions[2].text, bg=backgroundColor, fg=borderColor, padx=50, pady=50, font='System 32', width=int(round(self.Container.winfo_width() * .2)))
        actionButton3.pack(side=LEFT, expand=False)
        actionButton4 = Button(self.Container, text=actions[3].text, bg=backgroundColor, fg=borderColor, padx=50, pady=50, font='System 32', width=int(round(self.Container.winfo_width() * .2)))
        actionButton4.pack(side=LEFT, expand=False)

        '''for action in actions:
            actionButton = Button(self.Container, text=action.text, bg=DEBUG_BGCOLOR, fg=DEBUG_FGCOLOR, padx=50, pady=50, font='System 32', width=int(round(self.Container.winfo_width() * .2)))
            actionButton.pack(side=LEFT, expand=False)
            self.Buttons.append(actionButton)'''
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...