在Tkinter类python中居中并调整窗口大小 [英] Centering and size a windows frame in Tkinter class python
本文介绍了在Tkinter类python中居中并调整窗口大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想以窗口框架为中心,使用根据屏幕尺寸的比例设置尺寸。但我不能看到在哪里修改我的代码正确执行这样的程序。我的程序如下:
class App:
def __init __(self,master):
ScreenSizeX = master.winfo_screenwidth()#获取屏幕宽度[pixels]
ScreenSizeY = master.winfo_screenheight()#获取屏幕高度[像素]
ScreenRatio = 0.8#设置宽度和高度的屏幕比例
FrameSizeX = int(ScreenSizeX * ScreenRatio)
FrameSizeY = int(ScreenSizeY * ScreenRatio)
FramePosX =(ScreenSizeX - FrameSizeX)/ 2#查找窗口的左上边框
FramePosY = ScreenSizeY - FrameSizeY)/ 2
打印FrameSizeX,FrameSizeY,FramePosX,FramePosY
#geometry(str(self.winfo_screenwidth())+x+ str winfo_screenheight())++ 0 + 0)
frame = Tkinter.Frame(master)
frame.pack()
self.button = Tkinter.Button ,text =Quit,fg =red,command = frame.quit)
self.button.pack()
self.hi_there = Tkinter.Button Hi!,command = self.say_hi)
self.hi_there.pack()
def say_hi(self):
printhello!
if __name__ ==__main__:
root = Tkinter.Tk()
app = App(root)
root.mainloop()
c>
解决方案 code> line?这是非常接近你真正需要的。尝试此操作:
master.geometry(%sx%s +%s +%s%(FrameSizeX,FrameSizeY,FramePosX,FramePosY ))
I want to center a window frame ad set a size using a ratio according to screensize. But I cannot see where to modify my code correctly to perform such program. My program is the following example :
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()
解决方案 Why did you comment out the geometry
line? It's quite close to what you need really. Try this:
master.geometry("%sx%s+%s+%s" % (FrameSizeX,FrameSizeY,FramePosX,FramePosY))
这篇关于在Tkinter类python中居中并调整窗口大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文