#coding=utf-8
from tkinter import *
root=Tk()
root.title("place布局管理")
root.geometry("500x300")
'''
创建一个Frame,在root窗口中,宽200,高200
x=30,y=30,表示在root窗口中的(30,30)位置放置该Frame
'''
f1=Frame(root,width=200,height=200,bg="green")
f1.place(x=30,y=30)
'''
首先自身的宽和高:relwidth=0.2相对父组件root的宽为500*0.2,relheight=0.3相对父组件root的高为300*0.3
再看自身的位置:relx=0.2相对父组件root的x轴位置0.2(距离x轴原点20%的位置),x=100再在此基础上偏移100,y=20相对父组件20的纵轴位置
'''
Button(root,text="上学通").place(relx=0.2,x=100,y=20,relwidth=0.2,relheight=0.3)
'''
relx=0.6相对父组件root的x轴位置0.6(距离x轴原点60%的位置)
rely=0.7相对父组件root的y轴位置0.7(距离y轴原点70%的位置)
'''
Button(f1,text="哇哦").place(relx=0.6,rely=0.7)
Button(f1,text="欧耶").place(relx=0.2,rely=0.2)
root.mainloop()
place布局管理.png
#coding=utf-8
from tkinter import *
class Application(Frame):
def __init__(self,master):
Frame.__init__(self,master)
self.pack()
self.createWidget()
def createWidget(self):
'''
注:当Label(self,image=self.photo)无法显示图片时,可改成:Label(self.master,image=self.photo)
self.photo=PhotoImage(file='./imgs/puke/puke1.gif')
self.label=Label(self.master,image=self.photo)
self.label.place(x=10,y=20)
'''
#列表推导式生成图片对象列表
self.photo=[PhotoImage(file="./imgs/puke/puke"+str(i+1)+".gif") for i in range(10)]
#列表推导式生成插入图片的标签对象
self.label=[Label(self.master,image=self.photo[i]) for i in range(10)]
#循环为每个图片标签对象设置布局place()
for i in range(10):
self.label[i].place(x=10+40*i, y=50)
#为所有的Label增加事件处理,"Label"为className
self.label[0].bind_class("Label","<Button-1>",self.chupai)
def chupai(self,event):
print(event.widget.winfo_geometry())
print(event.widget.winfo_y())
'''
137x189+90+50
50
'''
if event.widget.winfo_y()==50:
event.widget.place(y=30)
else:
event.widget.place(y=50)
if __name__=="__main__":
root=Tk()
root.title("扑克布局")
root.geometry("600x270+300+200")
app=Application(root)
root.mainloop()
扑克布局界面1.png
扑克布局界面2.png
网友评论