1.frame和pack学习
1.1 代码:
![tkinter学习(4)frame、pack、canvas学习第1张](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![tkinter学习(4)frame、pack、canvas学习第2张](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
importtkinter as tk window =tk.Tk() window.title('my window') window.geometry('600x400+500+0') #tk.Label(window, text='on the window').pack() #这种写法很简洁#与下面这种写法等同,注意pack的位置 l=tk.Label(window, text='on the window') l.pack() frm = tk.Frame(window) #定义一个frame=frm,在Window上 frm.pack() frm_l = tk.Frame(frm) #在frm上定义frm2个框架 frm_r =tk.Frame(frm) frm_l.pack(side='left') #pack位置,side=left和right,当然还有top和bottom frm_r.pack(side='right') tk.Label(frm_l, text='on the frm_l1').pack() tk.Label(frm_r, text='on the frm_r1').pack() #这种布局是依次的,看懂了么? tk.Label(frm_l, text='on the frm_l2').pack() tk.Label(frm_l, text='on the frm_l3').pack() tk.Label(frm_l, text='on the frm_l4').pack() tk.Label(frm_l, text='on the frm_l5').pack() window.mainloop()
1.2 图1
2.canvas画布的学习
2.1 代码:
![tkinter学习(4)frame、pack、canvas学习第4张](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![tkinter学习(4)frame、pack、canvas学习第5张](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
importtkinter as tk #初始定义窗口,标题,大小和位置 window =tk.Tk() window.title('my window') window.geometry('800x500+500+0') #定义画布canvas(是位于Window的一个画布)、大小和背景颜色,pack布局方法2种,但这里只能这种 canvas = tk.Canvas(window, bg='pink', height=300, width=300) canvas.pack() #canvas = tk.Canvas(window, bg='pink', height=300, width=300).pack() #这种布局就会报错#因为以下的功能属性比如create_image是canvas的属性#---------以下这些是canvas的内容#定义导入图片设置 image_file = tk.PhotoImage(file='ins.gif') #图片ins.gif这种代表系统的默认位置本机位置是:/home/xgj#0,0,是指坐标x=0,y=0,就是左上角顶点处#anchor就是錨定位置为nw(必须是小写)=西北角,当然也可以是center等等 image = canvas.create_image(0, 0, anchor='nw', image=image_file) #初始赋值 x0, y0, x1, y1= 50, 50, 80, 80 #画图形设置 line = canvas.create_line(x0, y0, x1, y1) #画线 oval = canvas.create_oval(x0, y0, x1, y1, fill='red') #画圆#注意参数start从0°(水平向右的为0°)开始,到extent120°(往左画扇形,120°就会更直观)结束 arc = canvas.create_arc(x0+80, y0+80, x1+80, y1+80, start=0, extent=120) #画扇形 rect = canvas.create_rectangle(100, 30, 100+20, 30+20) #画长方形 #-------以上是canvas的内容#canvas.pack() ,也可以放在这个位置 #定义函数 defmoveit(): canvas.move(rect, 0, 2) #move的对象是rect这个正方形,x=0,y=2,就是x坐标不变,y坐标每次向下移动2个像素 b = tk.Button(window, text='move', command=moveit).pack() #这种pack没有关系 window.mainloop()
2.2 图2