首页 > 编程语言 >Python基础入门学习笔记 071 GUI的终极选择:Tkinter8

Python基础入门学习笔记 071 GUI的终极选择:Tkinter8

时间:2023-08-23 14:01:21浏览次数:48  
标签:200 center 071 Python GUI 100 root create fill

Canvas(画布)组件

一个可以让你随心所欲绘制界面的组件。通常用于显示和编辑图形,可以用它来绘制直线、图形、多边形,甚至是绘制其他组件。

实例1:

 1 from tkinter import *
 2 root = Tk()
 3 #创建canvas对象框,设置其宽度、高度与背景色
 4 w = Canvas(root,width=200,height=100,background="black")
 5 w.pack()
 6 
 7 #画一条黄色的线
 8 w.create_line(0,50,200,50,fill="yellow")
 9 #画一条红色的竖线(虚线)
10 w.create_line(100,0,100,100,fill="red")
11 #中间画一个蓝色的矩形
12 w.create_rectangle(50,25,150,75,fill="blue")
13 
14 mainloop()

 实例2:

 1 from tkinter import *
 2 root = Tk()
 3 #创建canvas对象框,设置其宽度、高度与背景色
 4 w = Canvas(root,width=200,height=100,background="black")
 5 w.pack()
 6 
 7 #画一条黄色的线(参数为其x、y轴坐标)
 8 line1 = w.create_line(0,50,200,50,fill="yellow")
 9 #画一条红色的竖线(虚线)
10 line2 = w.create_line(100,0,100,100,fill="red")
11 #中间画一个蓝色的矩形
12 rect1 = w.create_rectangle(50,25,150,75,fill="blue")
13 
14 w.coords(line1,0,25,200,25)#将line1移动到新的坐标
15 w.itemconfig(rect1,fill="red")#重新设置矩形的填充色为红色
16 w.delete(line2)#删除线2
17 
18 #创建一个按钮,按下时删除所有图形
19 Button(root,text="删除全部",command=(lambda x=ALL:w.delete(x))).pack()
20 
21 mainloop()

 实例3:在Canvas上显示文本

 1 from tkinter import *
 2 root = Tk()
 3 #创建canvas对象框,设置其宽度、高度与背景色
 4 w = Canvas(root,width=200,height=100,background="black")
 5 w.pack()
 6 
 7 #画一条绿色的斜线(参数为其x、y轴坐标),宽度为三个像素点
 8 line1 = w.create_line(0,0,200,100,fill="green",width=3)
 9 #画一条绿色的斜线
10 line2 = w.create_line(200,0,0,100,fill="green",width=3)
11 #中间画两个矩形
12 rect1 = w.create_rectangle(40,20,160,80,fill="blue")
13 rect2 = w.create_rectangle(60,30,140,70,fill="yellow")
14 #在矩形正中(默认)显示文本,坐标为文本正中坐标
15 w.create_text(100,50,text="Hadley")
16 
17 #创建一个按钮,按下时删除所有图形
18 Button(root,text="删除全部",command=(lambda x=ALL:w.delete(x))).pack()
19 
20 mainloop()

 实例4:绘制椭圆

 1 from tkinter import *
 2 root = Tk()
 3 #创建canvas对象框,设置其宽度、高度与背景色
 4 w = Canvas(root,width=200,height=100,background="white")
 5 w.pack()
 6 
 7 #绘制一个虚线的矩形
 8 w.create_rectangle(40,20,160,80,dash=(4,4))
 9 #绘制椭圆,粉色填充
10 w.create_oval(40,20,160,80,fill="pink")
11 #在矩形正中(默认)显示文本,坐标为文本正中坐标
12 w.create_text(100,50,text="Hadley")
13 
14 mainloop()

实例5:绘制圆形

 1 from tkinter import *
 2 root = Tk()
 3 #创建canvas对象框,设置其宽度、高度与背景色
 4 w = Canvas(root,width=200,height=100,background="white")
 5 w.pack()
 6 
 7 #绘制一个虚线的矩形
 8 w.create_rectangle(40,20,160,80,dash=(4,4))
 9 #绘制圆形,粉色填充
10 #w.create_oval(40,20,160,80,fill="pink")
11 w.create_oval(70,20,130,80,fill="pink")
12 #在矩形正中(默认)显示文本,坐标为文本正中坐标
13 w.create_text(100,50,text="Hadley")
14 
15 mainloop()

 实例6:绘制多边形

 1 from tkinter import *
 2 import math as m
 3 
 4 root = Tk()
 5 w=Canvas(root,width=200,height=150,background="red")
 6 w.pack()
 7 center_x = 100
 8 center_y = 80
 9 r = 70
10 points = [
11     #左上角A
12     center_x - int(r*m.sin(2*m.pi/5)),
13     center_y - int(r*m.cos(2*m.pi/5)),
14     #右上角C
15     center_x + int(r*m.sin(2*m.pi/5)),
16     center_y - int(r*m.cos(2*m.pi/5)),
17     #左下角E
18     center_x - int(r*m.sin(m.pi/5)),
19     center_y + int(r*m.cos(m.pi/5)),
20     #顶点D
21     center_x,
22     center_y - r,
23     #右下角B
24     center_x + int(r*m.sin(m.pi/5)),
25     center_y + int(r*m.cos(m.pi/5)),
26     ]
27 #创建多边形方法,会自动按ACEDBA的形式连线,如果构成闭环,则会自动填充
28 w.create_polygon(points,outline="green",fill="yellow")
29 
30 w.create_text(100,80,text="Hadley")
31 
32 mainloop()

 实例7:

 1 from tkinter import *
 2 
 3 root = Tk()
 4 w=Canvas(root,width=400,height=200,background="white")
 5 w.pack()
 6 
 7 def paint(event):#画小圆
 8     x1,y1 = (event.x - 1),(event.y -1)
 9     x2,y2 = (event.x + 1),(event.y +1)
10     w.create_oval(x1,y1,x2,y2,fill="red")
11 
12 w.bind("<B1 - Motion>",paint)#画布与鼠标进行绑定
13 Label(root,text="按住鼠标左键并移动,开始绘制你的理想蓝图吧。。。").pack(side=BOTTOM)
14 
15 mainloop()

标签:200,center,071,Python,GUI,100,root,create,fill
From: https://www.cnblogs.com/ybqjymy/p/17651431.html

相关文章

  • Python基础入门学习笔记 073 GUI的终极选择:Tkinter10
    Munu组件Tkinter提供了一个Menu组件,用于实现顶级菜单、下拉菜单和弹出菜单。实例1:创建一个顶级菜单(或称窗口主菜单)1fromtkinterimport*23defcallback():4print("被调用了")56root=Tk()789menubar=Menu(root)#创建一个顶级菜单10m......
  • 发送到Teams的python程序处理,其中也保括上传到OSS的文件处理
    1importurllib2importtime3importoss24importos5importrandom6frompathlibimportPath7importrequests8importdatetime9fromdecoupleimportconfig1011fromurllib.parseimportunquote121314#......
  • Python+百度OCR进行图像识别
    说实在的Pyhon在数据处理方面确实很牛。尤其是大数据的今天,我们和形形色色的数据形影不离。本文给大家介绍下利用百度OCR进行文字识别。实验环境Python(3.9.12)KaliLinux百度OCR申请百度OCR访问百度智能云,开通API网址:https://cloud.baidu.com/campaign/OCR202203/index.html可以......
  • 一个查询数据库并解析其中的json格式的数据,并处理后保存到另外的表的python程序
    1importjson2importpymysql3importdatetime4fromdecimalimportDecimal5fromdecoupleimportconfig678#获取每日汇率的方法9defget_currency_rate(code):10currency_db_host=config("CURRENCY_DB_HOST")11curre......
  • python-上下文管理器Context
    1.什么是上下文管理器?上下文管理器是一个对象,他定义了执行with语句时要建立的上下文,上下文管理器处理进去和退出所需运行时上下文执行代码块。简单来说一个上下文管理器至少包含__enter__和__exit__两个方法,python提供了contextlib模块中的contextmanager用作装饰器并配合迭......
  • python读取shapefile
     #!/usr/bin/envpython#coding:utf-8#AutorGaoSong#读取shp数据importosimporttkinterimporttkinter.messageboximporttkinter.filedialogfromosgeoimportgdalfromosgeoimportosrfromosgeoimportogrfromosgeoimportgdalconstclassARCVIE......
  • python获取网络时间和本地时间
    今天我们来看一下如何用python获取网络时间和本地时间,直接上代码吧,代码中都有注释。python获取网络时间1234567891011121314151617181920212223242526272829获取网络时间def getBeijinTime():"""获取北京时间"""try:conn= httplib.HTTPConnection("www.beijing-time.org")co......
  • Unity UGUI的Image(图片)组件的介绍及使用
    UGUI的Image(图片)组件的介绍及使用1.什么是UGUI的Image(图片)组件?UGUI的Image(图片)组件是Unity引擎中的一种UI组件,用于显示2D图像。它提供了一种简单而灵活的方式来在游戏中加载和显示图片。2.为什么要使用UGUI的Image(图片)组件?使用UGUI的Image组件可以方便地在游戏中展示各种图......
  • Python基础入门学习笔记 070 GUI的终极选择:Tkinter7
    实例1:添加Tags1fromtkinterimport*23root=Tk()4text=Text(root,width=30,height=5)5text.pack()67#INSERT索引表示插入光标当前的位置8text.insert(INSERT,"IloveFishC.com!")#光标当前的位置插入9#注意,行号从1开始,列号则从0开始10text.ta......
  • Python中的if-else语法糖
    Python中的if语句是用于条件控制的一种语法结构,可以根据条件的真假来决定程序的执行路径。在Python中,if语句的语法如下:if条件:执行语句块其中,条件是一个返回布尔值的表达式,如果条件为True,那么执行语句块中的代码;如果条件为False,则跳过语句块。除了基本的if语句外,Python还......