расположение кадра на основном кадре в tkinter

1

Я пытаюсь настроить расположение подкадров на мейнфрейме. Как новичок и как я понял я пытался разобраться, но это не дает ожидаемого результата.

Код:

from tkinter import *

root = Tk()

root.geometry("1390x700+0+0")
root.title("Top Frame")
root.configure(background = "white")
# layout all of the main containers
root.grid_rowconfigure(1, weight=1)
root.grid_columnconfigure(0, weight=1)
#################################################################################
#Frames
#################################################################################
Header_F = Frame(root, bd = 10, pady = 5)
Header_F.grid(row =0, column =0, sticky = W+E)


Components_F = Frame(root,  bd = 10, width =500, height = 400)
Components_F.grid(row= 1, column = 0, sticky = NW, pady = 10)
Components_F.grid_propagate(False)

Communication_F = Frame(root, width = 100, height = 100)
Communication_F.grid(column = 1 , row = 1 , sticky = W )
Communication_F.grid_propagate(False)

Фактический результат: это изображение фактического результата

Ожидаемый результат:

Это изображение ожидаемого результата

  • 0
    что происходит, когда вы закомментируете две строки: root.grid_rowconfigure (1, weight = 1) root.grid_columnconfigure (0, weight = 1)
  • 0
    @MediaEU, да, это работает, если закомментировать две строки: root.grid_rowconfigure (1, weight = 1) root.grid_columnconfigure (0, weight = 1). Но если попытаться добавить еще один фрейм, который должен быть размещен под фреймом связи и рядом с фреймом компонентов, он не размещается в нужном месте. и даже кадр заголовка, получающий сжатие кадра компонентов. Я думаю, что когда дело доходит до управления кадрами в другом кадре, мне нужно использовать управление геометрией места вместо упаковки и сетки. Я прав?
Теги:
tkinter

1 ответ

0

попробуй это:

from tkinter import *

root = Tk()

root.geometry("1390x700+0+0")
root.title("Top Frame")
root.configure(background = "white")
# layout all of the main containers
#root.grid_rowconfigure(1, weight=1)
#root.grid_columnconfigure(0, weight=1)
#################################################################################
#Frames
#################################################################################
Header_F = Frame(root, bd = 10,  height = 40)
Header_F.grid(row =0, column =0, sticky = W+E)


Components_F = Frame(root,  bd = 10, width =500, height = 400)
Components_F.grid(row= 1, column = 0, sticky = NW, pady = 10,padx = 10)
Components_F.grid_propagate(False)

Communication_F = Frame(root, width = 100, height = 100)
Communication_F.grid(column = 1 , row = 1, sticky = NW, pady = 10 )
Communication_F.grid_propagate(False)

root.mainloop()
  • 0
    да, это работает, если закомментировать две строки: root.grid_rowconfigure (1, weight = 1) root.grid_columnconfigure (0, weight = 1). Но если попытаться добавить еще один фрейм, который должен быть расположен под фреймом связи и рядом с фреймом компонентов, он не помещается в нужное место. и даже кадр заголовка, получающий сжатие кадра компонентов. Я думаю, что когда дело доходит до управления кадрами в другом кадре, мне нужно использовать управление геометрией места вместо упаковки и сетки. Я прав?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню