1.frame和pack学习

1.1 代码:

  1. import tkinter as tk
  2.  
  3. window = tk.Tk()
  4. window.title('my window')
  5. window.geometry('600x400+500+0')
  6.  
  7. #tk.Label(window, text='on the window').pack() #这种写法很简洁
  8. #与下面这种写法等同,注意pack的位置
  9. l=tk.Label(window, text='on the window')
  10. l.pack()
  11.  
  12. frm = tk.Frame(window) #定义一个frame=frm,在Window上
  13. frm.pack()
  14.  
  15. frm_l = tk.Frame(frm) #在frm上定义frm2个框架
  16. frm_r = tk.Frame(frm)
  17. frm_l.pack(side='left') #pack位置,side=left和right,当然还有top和bottom
  18. frm_r.pack(side='right')
  19.  
  20. tk.Label(frm_l, text='on the frm_l1').pack()
  21. tk.Label(frm_r, text='on the frm_r1').pack()
  22. #这种布局是依次的,看懂了么?
  23. tk.Label(frm_l, text='on the frm_l2').pack()
  24. tk.Label(frm_l, text='on the frm_l3').pack()
  25. tk.Label(frm_l, text='on the frm_l4').pack()
  26. tk.Label(frm_l, text='on the frm_l5').pack()
  27.  
  28. window.mainloop()

1.2 图1

2.canvas画布的学习

2.1 代码:

  1. import tkinter as tk
  2. #初始定义窗口,标题,大小和位置
  3. window = tk.Tk()
  4. window.title('my window')
  5. window.geometry('800x500+500+0')
  6. #定义画布canvas(是位于Window的一个画布)、大小和背景颜色,pack布局方法2种,但这里只能这种
  7. canvas = tk.Canvas(window, bg='pink', height=300, width=300)
  8. canvas.pack()
  9. #canvas = tk.Canvas(window, bg='pink', height=300, width=300).pack() #这种布局就会报错
  10. #因为以下的功能属性比如create_image是canvas的属性
  11. #---------以下这些是canvas的内容
  12. #定义导入图片设置
  13. image_file = tk.PhotoImage(file='ins.gif') #图片ins.gif这种代表系统的默认位置本机位置是:/home/xgj
  14. #0,0,是指坐标x=0,y=0,就是左上角顶点处
  15. # anchor就是錨定位置为nw(必须是小写)=西北角,当然也可以是center等等
  16. image = canvas.create_image(0, 0, anchor='nw', image=image_file)
  17. #初始赋值
  18. x0, y0, x1, y1= 50, 50, 80, 80
  19. #画图形设置
  20. line = canvas.create_line(x0, y0, x1, y1) #画线
  21. oval = canvas.create_oval(x0, y0, x1, y1, fill='red') #画圆
  22. #注意参数start从0°(水平向右的为0°)开始,到extent120°(往左画扇形,120°就会更直观)结束
  23. arc = canvas.create_arc(x0+80, y0+80, x1+80, y1+80, start=0, extent=120) #画扇形
  24. rect = canvas.create_rectangle(100, 30, 100+20, 30+20) #画长方形
  25.  
  26. #-------以上是canvas的内容
  27. #canvas.pack() ,也可以放在这个位置
  28.  
  29. #定义函数
  30. def moveit():
  31. canvas.move(rect, 0, 2)
  32. #move的对象是rect这个正方形,x=0,y=2,就是x坐标不变,y坐标每次向下移动2个像素
  33.  
  34. b = tk.Button(window, text='move', command=moveit).pack() #这种pack没有关系
  35.  
  36. window.mainloop()

2.2 图2

tkinter学习(4)frame、pack、canvas学习的更多相关文章

  1. webrtc学习———记录二:canvas学习

    参考资料: http://bucephalus.org/text/CanvasHandbook/CanvasHandbook.html#getcontext2d https://developer.m ...

  2. canvas学习和面向对象(二)

    Canvas 学习(二) 上一篇Canvas 学习(一)中我是用canvas绘制了一些基本和组合的图形. 现在开始绘制图片和动画帧,以及面向对象的升级版本. 还是一样,看代码,所有的代码都托管在git ...

  3. canvas学习之API整理笔记(二)

    前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...

  4. canvas学习(一)

    Canvas 学习之路 (一) canvas 是H5 里面神一样的东西,使得只是通过html和js就能做出非常棒的游戏和画面. 因为对前端无限的爱好,更加对canvas充满好奇,将我学习canvas的 ...

  5. WEB前端开发学习:源码canvas 雪

    WEB前端开发学习:源码canvas 雪 双旦节要到了,程序员们为了响应气氛,特别用代码制作了动态雪花,WEB前端开发学习的初学者们一起跟着案例做一遍吧! <!DOCTYPE html> ...

  6. canvas学习总结六:绘制矩形

    在第三章中(canvas学习总结三:绘制路径-线段)我们提高Canvas绘图环境中有些属于立即绘制图形方法,有些绘图方法是基于路径的. 立即绘制图形方法仅有两个strokeRect(),fillRec ...

  7. canvas学习笔记、小函数整理

    http://bbs.csdn.net/topics/391493648 canvas实例分享 2016-3-16 http://bbs.csdn.net/topics/390582151 html5 ...

  8. canvas学习(三):文字渲染

    一.绘制基本的文字: var canvas = document.getElementById("myCanvas") var ctx = canvas.getContext('2 ...

  9. canvas学习(二):渐变与曲线的绘制

    canvas学习(二):渐变与曲线的绘制 一:createLinearGradient()线性渐变: 二:createLinearGradient() 放射状/圆形渐变: 三:createPatter ...

随机推荐

  1. BBR在实时音视频领域的应用

    小议BBR算法 BBR全称Bottleneck Bandwidth and RTT,它是谷歌在2016年推出的全新的网络拥塞控制算法.要说明BBR算法,就不能不提TCP拥塞算法. 传统的TCP拥塞控制 ...

  2. 创建目录命令 - mkdir

    (1) 命令名称:mkdir (2) 英文原意:make directories (3) 命令所在路径:/bin/mkdir (4) 执行权限:所有用户 (5) 功能描述:创建新目录 (6) 语法: ...

  3. python3练习100题——014

    这题卡了我一整天,然后还是看答案撸了一遍- 原题链接:http://www.runoob.com/python/python-exercise-example14.html 题目:将一个正整数分解质因 ...

  4. 爬虫实战 豆瓣音乐top250 xpath

    刷知乎时刷到一篇爬取豆瓣音乐top250的,然后看了看,感觉自己的爬虫又更上一层楼了哈啊哈哈,尤其是发现xpath这么好用的东西. 不过也有一个感慨,就是有很多种方式都可以获得想要的数据,对于入门的新 ...

  5. js -- 车牌号对应的归属地js文件

    /*车牌号对应的归属地*/ let cardCallerloc = new Map(); // 北京市(京) cardCallerloc.set("京A", "北京市&q ...

  6. Flink架构(二)- Flink中的数据传输

    2. Flink中的数据传输 在一个运行的application中,它的tasks在持续交换数据.TaskManager负责做数据传输.TaskManager的网络组件首先从缓冲buffer中收集re ...

  7. swagger2 常用注解的使用

    一.@Api 效果: @Api注解放在类上面,这里的value是没用的,tags表示该controller的介绍. 二 .@ApiOperation 效果: @ApiOperation注解用于放在方法 ...

  8. Swagger-ui接口文档

    参考地址 https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X#quick-annotation-overview   ...

  9. maven基础学习篇

    一.Maven的两大核心功能:依赖管理(主要是jar包的管理)  和   一键构建 1.依赖管理:maven项目所需要的jar包全部放在仓库中,项目只放置jar包的坐标,所要用到的jar包都从仓库中获 ...

  10. SQL更新语句的执行

    联系上文SQL查询语句的执行 查询语句的那一套流程,更新语句也是同样会走一遍. 更新流程还涉及两个重要的日志模块: ​ redo log(重做日志)和 binlog(归档日志) redo log:重做 ...