tkinter学习(4)frame、pack、canvas学习

摘要:
1.frame和pack学习1.1代码:importtkinterastkwindow=tk.Tk()window.title('mywindow')window.geometry('600x400+500+0')#tk.Label(window,text='onthewindow').pack()#这种写法很简洁#与下面这种写法等同,注意pack的位置l=tk.Label(window,text

1.frame和pack学习

1.1 代码:

tkinter学习(4)frame、pack、canvas学习第1张tkinter学习(4)frame、pack、canvas学习第2张
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()
View Code

1.2 图1

tkinter学习(4)frame、pack、canvas学习第3张

2.canvas画布的学习

2.1 代码:

tkinter学习(4)frame、pack、canvas学习第4张tkinter学习(4)frame、pack、canvas学习第5张
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()
View Code

2.2 图2

tkinter学习(4)frame、pack、canvas学习第6张

免责声明:文章转载自《tkinter学习(4)frame、pack、canvas学习》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用javascript实现禁止页面后退返回上一页的代码使用PHP的反射Reflection获取对象信息下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

html2canvas踩坑日记

近日要开发一个能将生成的二维码另存为图片的功能(该图片呢,肯定不止一个二维码,还包括背景、文字等其他元素),首先呢,就想到了html2canvas,随便一百度就是各种踩坑日志,我也随一下大流,记录本人在开发过程中遇到的坑。 1.基本用法: 在html2canvas上找到了它的基本用法以及压缩包 <div style="padding: 10px;...

[ html canvas 绘制文本 ] canvas绘图实现绘制文本 strokeText fillText方法及textAlign textBaseline font 属性实例演示

1 <!DOCTYPE html> 2 <html lang='zh-cn'> 3 <head> 4 <title>Insert you title</title> 5 <meta name='description' content='this is my page'>...

canvas动画—圆形扩散、运动轨迹

介绍 在ECharts中看到过这种圆形扩散效果,类似css3,刚好项目中想把它用上,but我又不想引入整个echart.js文件,更重要的是想弄明白它的原理,所以自己动手。在这篇文章中我们就来分析实现这种效果的两种方法,先上效果图: 实现原理 通过不断的改变圆的半径大小,不断重叠达到运动的效果,在运动的过程中,设置当前canvas的透明度context....

canvas基础—图形变换

1、canvas转换方法 1.1canvas转换方法 二、canvas实现图形的中心点旋转 step1:获取canva元素并指定canvas的绘图环境 var canvas=document.getElementById('canvas'); var context=canvas.getContext('2d'); step2:在画布(1...

【canvas学习笔记三】样式和颜色

上一节我们学习了如何用路径绘制各种形状,但我们只能用默认的颜色和线条。这节就来学习设置不同的颜色和线条样式。 颜色 设置颜色主要有两个属性: fillStyle = color 设置填充颜色strokeStyle = color 设置描边颜色 颜色值可以用十六进制也可以用一些内置的颜色字符,还可以用rgb和rgba格式。 例子: // these all...

解决html5 canvas 绘制字体、图片与图形模糊问题

html5 canvas 绘制字体、图片与图形模糊问题 发生情况 多出现在高dpi设备,这意味着每平方英寸有更多的像素,如手机,平板电脑。当然很多高端台式电脑也有高分辨率高dpi的显示器。 canvas在浏览器中的缩放原理 如果没有设置style那么就以html的属性width,height作为尺寸。 如果设置了style中的width、height,那么...