Найти - Пользователи
Полная версия: place()
Начало » Python для новичков » place()
1
ok
Добрый день!
Может кто-то сталкивался с такой проблемой в tkinter, у меня опыта не хватает:

Есть основное окно с верхним меню, при нажатии пункта меню окно заполняется разными виджетами, среди которых есть treeview в виде таблички (занимает 1/3 нижней части окна). Задача простая - нужно, чтобы этот treeview красиво растягивалось вместе с окном.
Пытался применить relwidth, relheight - в ширину растягивается красиво, т.к. совпадает с шириной окна, а в высоту не получается, т.к. в relheight задается размеры относительно всего окна, например, 0.4 и, естественно, окно растягивается больше чем таблица.
Решил пойти другим путем - привязал к событию изменения размеров окна функцию
root.bind('<Configure>', onFormEvent)

def onFormEvent(event):
w, h=root.winfo_width(), root.winfo_height()
table_1.place(width=1190+w-1200, heigth=280+h-700) #(1190, 280 -размеры таблицы, 1200, 700 - размеры основного окна)

Тут возникла другая проблема - при запуске программы табличка, по понятной причине, появляется сразу, затем после нажатия пункта меню все отражается, как мне нужно и растягивается как нужно, все ОК. Как сделать, чтобы при запуске программы табличка сразу не появлялась? Можно ли как-то вместо table_1.place(width=1190+w-1200, heigth=280+h-700) использовать просто изменение размеров таблицы без place()? Ну типа table_1.heigth=280+h-700
Спасибо всем.
rami
Если я правильно понял, то так:
 from tkinter import ttk, Tk, Frame
 
root=Tk()
 
fr=Frame(root, width=200, height=100, bg='red')
fr.pack(fill='both',expand=0)
 
t=ttk.Treeview(root)
t.pack(fill='both',expand=1)
 
root.mainloop()
ok
rami
Если я правильно понял, то так:
Спасибо большое!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB