Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 24, 2010 13:18:56

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

tkinter root.geometry

Как выставить в 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)



Офлайн

#2 Июнь 24, 2010 18:42:25

Gunjy
От:
Зарегистрирован: 2009-07-11
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter root.geometry

Вот так как-нибудь:

import Tkinter
root = Tkinter.Tk()

x, y = 400, 300

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

root.geometry(a)
root.mainloop()



Офлайн

#3 Июнь 24, 2010 19:07:24

Evgeny
От:
Зарегистрирован: 2009-08-09
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter root.geometry

Такое сгодится?

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()



Офлайн

#4 Июнь 24, 2010 23:46:22

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

tkinter root.geometry

Gunjy и Evgeny спасибо.
Evgeny Ваш пример слишком для меня сложен пока. Я воспользовался первым.

П.С. Для меня важно понимать код а не просто копировать “чтоб заработало”. Надеюсь настанет то время, когда смогу не только адекватно прочесть его но и написать =)



Отредактировано (Июнь 24, 2010 23:50:00)

Офлайн

#5 Июнь 25, 2010 02:28:41

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9885
Репутация: +  853  -
Профиль   Отправить e-mail  

tkinter root.geometry

>>> import tkinter
>>> w = tkinter.Tk()
>>> x, y = 100, 100
>>> w.geometry("%dx%d" % (x, y))
''
>>> w.mainloop()
во втором примере то же, только ещё плюс смещение



Офлайн

#6 Июнь 25, 2010 08:29:30

Griffon
От: Ukrain, Zaporozhie
Зарегистрирован: 2009-03-04
Сообщения: 324
Репутация: +  11  -
Профиль   Отправить e-mail  

tkinter root.geometry

Не верю что пример автора не работает.
Второй пример полностью копирует пример автора. Зачем спрашивается нужна такая помощь?
Ошибка гласит - вы передаёте 3 аргумента, а надо два. Первый это конечно же self, который передаётся сам по себе. А второй это строка.
Можете перепроверить. Ваш код работает.

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



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version