в Tkinter есть способ получить информацию о geometrymanager из виджета, который он подчиняет - PullRequest
0 голосов
/ 03 июня 2019

Я хочу получить менеджер геометрии и параметры из виджета например:

f=Frame(root)
f.place(x=100,y=100,height=100,width=100)

Я хочу получить геометрический менеджер (место в этом примере) и его параметры (x, y, высота, ширина), чтобы я мог переопределить виджет в другом родителе.

Ответы [ 2 ]

1 голос
/ 03 июня 2019

У каждого виджета есть метод с именем winfo_manager, который будет возвращать имя управляющего им геометрии:

f.winfo_manager()

В вашем случае он вернет строку "place".

У каждого виджета также есть метод для получения параметров менеджера геометрии.В случае place это place_info.Это вернет словарь со всеми параметрами, используемыми виджетом:

f.place_info()

В вашем случае он вернет словарь, который выглядит примерно так:

{   
    'anchor': 'nw',
    'bordermode': 'inside',
    'height': '100',
    'in': <tkinter.Tk object .>,
    'relheight': '',
    'relwidth': '',
    'relx': '0',
    'rely': '0',
    'width': '100',
    'x': '100',
    'y': '100'
}
0 голосов
/ 03 июня 2019

Вы можете использовать

f.winfo_geometry()

Из документов:

Возвращать строку геометрии для этого виджета в виде "widthxheight + X + Y".

Или объединить f.winfo_width(), f.winfo_height(), f.winfo_x() и f.winfo_y() вызовы.

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