我现在一直试图找出是否有办法将变量传递给Tkinter中的geometry
方法。
我知道geometry
方法接受字符串:
root = Tk()
root.geometry("1200X1024")
我想根据屏幕宽度打开窗口。
root = Tk()
w = root.winfo_screenwidth()
h = root.winfo_screenheight()
我尝试过的是:
geometry = "%dX%d" % (w,h)
root.geometry(geometry)
或
root.geometry(("%dX%d" % (w,h)))
无论我如何连接变量,它都会产生这个错误:
TlcError: bad geometry specifier "1280X1024"
那么可以将变量传递给geometry
方法吗?
答案 0 :(得分:4)
当解释你给它的字符串时,Tk.geometry
方法不是很“聪明”。相反,它要求您完全按照以下方式指定窗口大小:
<width>x<height>
意思是,你的大写X
令人困惑。只需将X
更改为x
,您的代码即可正常使用。
答案 1 :(得分:3)
#works for python 3.4
screen_width = window.winfo_screenwidth()
screen_height = window.winfo_screenheight()
screen_resolution = str(screen_width)+'x'+str(screen_height)
window.geometry(screen_resolution)
答案 2 :(得分:2)
您可以使用带有字符串 format() 函数的括号来简化代码:
window.geometry("{}x{}".format(window_width, window_height))
以及设置它的 x 和 y 位置属性,并用“+”连接:
window.geometry("{}x{}+{}+{}".format(window_width, window_height, x-coord, y-coord))
答案 3 :(得分:-1)
你不需要做任何复杂的事情:
root = Tk()
root.geometry("500x200") #taking x=500 and y=200 for example