Найти - Пользователи
Полная версия: tkinter root.geometry
Начало » GUI » tkinter root.geometry
1
Ubhra
Как выставить в root.geometry переменные?

from tkinter import *
root = Tk()

h,v = 600,450
root.geometry("600x450")

root.mainloop()
TypeError: wm_geometry() takes at most 2 positional arguments (3 given)
Gunjy
Вот так как-нибудь:

import Tkinter
root = Tkinter.Tk()

x, y = 400, 300

a = str(x) + "x" + str(y)

root.geometry(a)
root.mainloop()
Evgeny
Такое сгодится?

def FormGeomString(root,xR,yR):
if (xR<=0 or xR>=1 or yR<=0 or yR>=1):return ""
ScrW = root.winfo_screenwidth();ScrH = root.winfo_screenheight()
width = round(ScrW*xR);
height = round(ScrH*yR);
x = (ScrW-width)//2
y = (ScrH-height)//2
return ('%dx%d+%d+%d' % (width,height,x,y))

from Tkinter import *
root = Tk()
GString = FormGeomString(root,0.5,0.5)
root.geometry(GString)
root.resizable(False,False)
root.mainloop()
Ubhra
Gunjy и Evgeny спасибо.
Evgeny Ваш пример слишком для меня сложен пока. Я воспользовался первым.

П.С. Для меня важно понимать код а не просто копировать “чтоб заработало”. Надеюсь настанет то время, когда смогу не только адекватно прочесть его но и написать =)
py.user.next
>>> import tkinter
>>> w = tkinter.Tk()
>>> x, y = 100, 100
>>> w.geometry("%dx%d" % (x, y))
''
>>> w.mainloop()
во втором примере то же, только ещё плюс смещение
Griffon
Не верю что пример автора не работает.
Второй пример полностью копирует пример автора. Зачем спрашивается нужна такая помощь?
Ошибка гласит - вы передаёте 3 аргумента, а надо два. Первый это конечно же self, который передаётся сам по себе. А второй это строка.
Можете перепроверить. Ваш код работает.

Видать вы до этого написали что то вроде root.geometry(h, v), или root.geometry(“%sx%s”, (h, v)) и просто забыли об этом.
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