• Позиционирование в tkinter не поддается логике?

    Vindicar
    @Vindicar
    RTFM!
    Во-первых, нельзя смешивать разные менеджеры в рамках одного контейнера. Если ты этого не понял, я фз что ты читал. Т.е. ты можешь гридом разместить несколько панелей, а потом каждую панель наполнять по-разному.
    Во-вторых, стоит чуть-чуть погуглить, и находишь вот такой материал где прямо прописано, что не так со свойством height (ну и width заодно).
    Height of the button in text lines (for textual buttons) or pixels (for images).

    Решение, мягко говоря, спорное, но оно документировано. Размер виджету нужен только как некоторое предпочтительное значение по умолчанию, так как вообще-то всей геометрией занимается выбранный менеджер геометрии. А раз уж хочешь использовать place, почему ты не обратил внимание на параметры width/height?
    В общем, не принимай собственную невнимательность за чужие ошибки.
    from tkinter import *
    
    frame_bot = Tk()
    frame_bot.geometry("640x480")
    # place() возвращает None, как и stack() / grid()
    Button(frame_bot, text="back", bg='gray').place(x=5, y=405, width=30, height=30) 
    Button(frame_bot, text="write", bg='blue').place(x=45, y=405, width=30, height=30)
    Button(frame_bot, text="home", bg='green').place(x=85, y=405, width=30, height=30)
    
    frame_bot.mainloop()
    Ответ написан
    1 комментарий