Как разместить оконное приложение python / tkinter на экране в определенном месте? - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь разместить окно приложения python / tkinter в нижнем левом углу экрана (нижний левый угол приложения должен быть в левом нижнем углу экрана).Приложение выглядит примерно так:

from tkinter import *

class Dru(Frame):
    def __init__(self, parent=None):
        Frame.__init__(self, parent)
        ...
        self.makeWidgets()

    def makeWidgets(self):
            ...

if __name__ == '__main__':
    dru = Dru()
    dru.mainloop()

Работает нормально, но окна расположены там, где хочет ОС.Если я добавлю «dru.geometry (w * h + x + y)», как я видел в другом вопросе, я получу attibuteError: у объекта «Dru» нет атрибута «geometry».Документация говорит, что мы можем использовать атрибут .geometry для любого окна верхнего уровня, и я думал, что dru был окном верхнего уровня по умолчанию.У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 07 марта 2019

Фрейм не является окном верхнего уровня и поэтому не имеет метода geometry. Единственными виджетами, которые имеют метод geometry, являются корневое окно (экземпляр Tk) и экземпляры класса Toplevel.

Вы должны явно создать корневое окно. Поскольку это не так, вы можете использовать самоанализ, чтобы получить его. Например:

dru = Dru()
dru.winfo_toplevel().geometry("300x300+100+100")
...