Я работал над текстовым приключением на 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)'''