Виджеты Tkinter не меняются, как ожидалось - PullRequest
0 голосов
/ 12 апреля 2020

Извините, если это легко исправить - я новичок в tkinter (и графических приложениях в целом), и на моем пути к кривой обучения.

У меня есть простое окно в сетке, с холст и несколько ярлыков справа от него. Они расположены и имеют правильный размер - но когда я изменяю размер окна вправо, они действительно расширяются, но только примерно на половину (то есть, для каждых 2 пикселей вправо, я расширяю окно, они виджеты расширяются только на 1) , У меня есть вес соответствующих столбцов, а также вес столбца родительского фрейма. Я не уверен, как исправить это, и не нашел ничего подобного через Google. Ниже я разместил свой код и снимки экрана виджетов при запуске приложения и время изменения размера.

КОД

from tkinter import *

root = Tk()
root.title("title")

mainframe = Frame(root)
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)


canvas = Canvas(mainframe, width=800, height=800)
canvas.grid(row=1, column=1, rowspan=3)

info_label = Label(mainframe, text='Info Label', bg='white', relief='solid', borderwidth=1)
info_label.grid(row=1, column=2, columnspan=2)

chatbox = Label(mainframe, text='Welcome to the application.', bg='white', relief='solid', borderwidth=1)
chatbox.grid(row=2, column=2, columnspan=2, sticky=(N,S,E,W))

chat_entry = Entry(mainframe)
chat_entry.grid(row=3, column=2)

chat_send = Button(mainframe, text='Send')
chat_send.grid(row=3, column=3)

mainframe.rowconfigure(1, weight=1)
mainframe.rowconfigure(2, weight=1)
mainframe.columnconfigure(2, weight=1)

root.columnconfigure(1, weight=1)

root.mainloop()

СКРИНШОТЫ

enter image description here enter image description here

1 Ответ

0 голосов
/ 12 апреля 2020

Единственная команда позиционирования, которая изменяет размеры в соответствии с размером окна, - это pack (). Как известно, у вас есть следующие функции:

pack()
grid()
place()

Кстати, я рекомендую использовать функцию места и использовать это:

    window.resizable(width=False, height=False)

Эта функция лишает клиента возможности изменить размер окна tkinter.

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