Центрирование и размер окна кадра в Python класса Tkinter

Я хочу, чтобы в центре окна был установлен размер кадра, используя соотношение по экрану. Но я не вижу, где правильно изменить код для выполнения такой программы. Моя программа выглядит следующим образом:

class App: def __init__(self,master): ScreenSizeX = master.winfo_screenwidth() # Get screen width [pixels] ScreenSizeY = master.winfo_screenheight() # Get screen height [pixels] ScreenRatio = 0.8 # Set the screen ratio for width and height FrameSizeX = int(ScreenSizeX * ScreenRatio) FrameSizeY = int(ScreenSizeY * ScreenRatio) FramePosX = (ScreenSizeX - FrameSizeX)/2 # Find left and up border of window FramePosY = (ScreenSizeY - FrameSizeY)/2 print FrameSizeX,FrameSizeY,FramePosX,FramePosY #geometry(str(self.winfo_screenwidth())+"x"+str(self.winfo_screenheight())+"+0+0") frame = Tkinter.Frame(master) frame.pack() self.button = Tkinter.Button(frame,text="Quit",fg="red",command=frame.quit) self.button.pack() self.hi_there = Tkinter.Button(frame,text="Hi!",command=self.say_hi) self.hi_there.pack() def say_hi(self): print "hello !" if __name__ == "__main__": root = Tkinter.Tk() app = App(root) root.mainloop() 

2 Solutions collect form web for “Центрирование и размер окна кадра в Python класса Tkinter”

Почему вы прокомментировали geometry ? Это очень близко к тому, что вам действительно нужно. Попробуй это:

 master.geometry("%sx%s+%s+%s" % (FrameSizeX,FrameSizeY,FramePosX,FramePosY)) 

Это последний код, который работает для этой функции:

 import Tkinter #Python integrated tool kit for interfaces class App: def __init__(self,master): # Define frame size and position in the screen : ScreenSizeX = master.winfo_screenwidth() # Get screen width [pixels] ScreenSizeY = master.winfo_screenheight() # Get screen height [pixels] ScreenRatio = 0.8 # Set the screen ratio for width and height FrameSizeX = int(ScreenSizeX * ScreenRatio) FrameSizeY = int(ScreenSizeY * ScreenRatio) FramePosX = (ScreenSizeX - FrameSizeX)/2 # Find left and up border of window FramePosY = (ScreenSizeY - FrameSizeY)/2 master.geometry("%sx%s+%s+%s"%(FrameSizeX,FrameSizeY,FramePosX,FramePosY)) frame = Tkinter.Frame(master) frame.pack() self.button = Tkinter.Button(frame,text="Quit",fg="red",command=frame.quit) self.button.pack() self.hi_there = Tkinter.Button(frame,text="Hi!",command=self.say_hi) self.hi_there.pack() def say_hi(self): print "hello !" if __name__ == "__main__": root = Tkinter.Tk() app = App(root) root.mainloop() 
  • Интерфейс GUI Cookbook для сценария командной строки
  • TK_LIBRARY и TCL_LIBRARY переменные окружения на Ubuntu
  • Python: функция принимает 1 позиционный аргумент, но 2 даны, как?
  • Получение меток tkinter для обновления при изменении переменных
  • Как поместить обрезанное изображение на холст Tkinter в Python
  • Установка Tkinter на Amazon Linux
  • Полоса прокрутки Python Tkinter для фрейма
  • Неожиданное поведение сетки Tkinter, встроенное в холст с более чем 280 элементами
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.