1.frame和pack学习

1.1 代码:

import tkinter 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 代码:

import tkinter 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() ,也可以放在这个位置 #定义函数
def moveit():
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

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. laydate 限制结束日期不能大于起始日期

    时间选择器在选择的时候,同时配置了另一个时间选择器内的参数 <div class="form-group"> <label for="exampleIn ...

  2. TNS-12545: Connect failed because target host or object does not exist

    问题描述 $ lsnrctl startLSNRCTL for Linux: Version 12.1.0.2.0 - Production on 26-JUL-2017 09:53:42Copyri ...

  3. HTTP响应头 状态码

    HTTP 简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传 ...

  4. 微信小程序图片设置圆角进入页面闪动

    transform变形 当我们通过某些行为触发页面进行大面积绘制的时候,浏览器由于没有事先准备,应付渲染够呛,于是掉帧,于是卡顿.而will-change则是真正的行为触发之前告诉浏览器:“我待会儿就 ...

  5. [NOIP2017(TG/PJ)] 真题选做

    [NOIPTG2017] 小凯的疑惑 题意 小凯有两种面值的金币,每种金币有无数个,求在无法准确支付的物品中,最贵的价值是多少金币. 分析 设两种金币面值分别为 $a$ 和 $b \; (a<b ...

  6. RS-232C

    RS-232C标准(协议)的全称是EIA-RS-232C标准,定义是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准".它是在1970年由美国电子 ...

  7. js splice()

    //arrayObject.splice(index,howmany,item1,.....,itemX) 语法 //测试代码let array;array = ['George','John','T ...

  8. koa2第一天 安装koa2found 1 low severity vulnerability run `npm audit fix` to fix them, or `npm audit` for details

    安装全局koa2:npm install -g koa2 -generator 创建一个koa2文件夹:koa2 -e koa2 进入koa2文件夹:cd koa2 安装npm模块:npm insta ...

  9. Redis非关系型缓存数据库集群部署、参数、命令工具

    <关系型数据库与非关系型数据库> 关系数据库:mysql.oracle.DB2.SQL Server非关系数据库:Redis(缓存数据库).MongodDB(处理海量数据).Memcach ...

  10. MyBatis知识点整理

    1.MyBatis一般使用步骤 1.1获取Configuration实例或编写配置文件 //获取Configuration实例的样例 TransactionFactory transactionFac ...