返回顶部
首页 > 资讯 > 后端开发 > Python >tkinter -- Canvas(3)
  • 750
分享到

tkinter -- Canvas(3)

tkinterCanvas 2023-01-30 22:01:47 750人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

移动 itemmove 指定 x,y 在偏移量代码:import tkinter as tk root = tk.Tk() # 创建一个 canvas,设置其背景色为白

移动 item

move 指定 x,y 在偏移量

代码:

import tkinter as tk

root = tk.Tk()
# 创建一个 canvas,设置其背景色为白色
cv = tk.Canvas(root, bg='white')
# 创建两个同样的 rectangle,比较移动前后的不同
rt1 = cv.create_rectangle(10,10,110,110, tags=('r1', 'r2', 'r3'))
cv.create_rectangle(10,10,110,110, tags=('r1', 'r2', 'r3'))
# 移动rt1
cv.move(rt1, 20, -10)
cv.pack()
root.mainloop()

结果:

blob.png

move 可以指定 x,y 在相对偏移量,可以为负值



删除 item

delete 删除给定的 item

代码:

import tkinter as tk

root = tk.Tk()
# 创建一个 Canvas,设置其背景色为白色
cv = tk.Canvas(root, bg='white')
# 创建两个同样的 rectangle,比较移动前后的不同
rt1 = cv.create_rectangle(10,10,110,110, tags=('r1', 'r2', 'r3'))
rt2 = cv.create_rectangle(20,20,110,110, tags=('s1', 's2', 's3'))
# 使用 id 删除 rt1
cv.delete(rt1)
# 使用 tag 删除 rt2
cv.delete('s1')

cv.pack()
root.mainloop()

结果:

blob.png

两种方法删除 item(id/tag)



缩放 item

scale 缩放 item,计算公式:(coords - offset)*scale + offset

代码:

import tkinter as tk

root = tk.Tk()
# 创建一个 Canvas,设置其背景色为白色
cv = tk.Canvas(root, bg='white')
# 创建两个同样的 rectangle,比较移动前后的不同
rt1 = cv.create_rectangle(10,10,110,110, tags=('r1', 'r2', 'r3'))

# 将 y 坐标放大为原来的2位,x 坐标值不变
cv.scale(rt1, 0,0,1,2)
cv.pack()
root.mainloop()

结果;

blob.png

scale 的参数为(self,xoffset,yoffset,xscale,yscale)



绑定 item 与 event

使用 tag_bind 来绑定 item 与事件

代码:

import tkinter as tk

root = tk.Tk()
# 创建一个 Canvas,设置其背景色为白色
cv = tk.Canvas(root, bg='white')
# 创建三个同样的 rectangle
rt1 = cv.create_rectangle(10,10,110,110,width=8, tags=('r1', 'r2', 'r3'))

def printRect(event):
    print('py3study.com')

# 绑定item与事件
cv.tag_bind('r1', '<Button-1>', printRect)
cv.pack()
root.mainloop()

结果:

blob.png

只有点击到矩形的边框时才会触发事件



添加绑定事件

使用 tag_bind 来绑定 item 与事件

代码:

import tkinter as tk

root = tk.Tk()
# 创建一个 Canvas,设置其背景色为白色
cv = tk.Canvas(root, bg='white')
# 创建三个同样的 rectangle
rt1 = cv.create_rectangle(10,10,110,110,width=8, tags=('r1', 'r2', 'r3'))

def printRect(event):
    print('py3study.com')

def printLine(event):
    print('py3study')

# 绑定item与左键事件
cv.tag_bind('r1', '<Button-1>', printRect)
# 绑定item与右键事件
cv.tag_bind('r1', '<Button-3>', printLine)
cv.pack()
root.mainloop()

结果:

blob.png

只有点击到矩形的边框时才会触发事件,不使用 add 参数,默认就是向这个 item 添加一个处理函数,它不会替换原来的事件函数,例子结果:既响应左键又响应右键



绑定新的 item 与现有的 tags

使用 tag_bind 来绑定 item 与事件

代码:

import tkinter as tk

root = tk.Tk()
# 创建一个 Canvas,设置其背景色为白色
cv = tk.Canvas(root, bg='white')
# 创建三个同样的 rectangle
rt1 = cv.create_rectangle(10,10,110,110,width=8, tags=('r1', 'r2', 'r3'))

def printRect(event):
    print('py3study.com')

def printLine(event):
    print('py3study')

# 绑定item与左键事件
cv.tag_bind('r1', '<Button-1>', printRect)
# 绑定item与右键事件
cv.tag_bind('r1', '<Button-3>', printLine)

# 创建一个 line,并将其 tags 设置为'r1'
cv.create_line(10,200,100,200, width=5, tags='r1')
cv.pack()
root.mainloop()

结果:

blob.png

将事件与 tag('r1')绑定后,创建新的 item 并指定已绑定事件的 tag,新创建的 item 同样也与事件绑定

--结束END--

本文标题: tkinter -- Canvas(3)

本文链接: https://lsjlt.com/news/179111.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • tkinter -- Canvas(3)
    移动 itemmove 指定 x,y 在偏移量代码:import tkinter as tk root = tk.Tk() # 创建一个 Canvas,设置其背景色为白...
    99+
    2023-01-30
    tkinter Canvas
  • tkinter -- Canvas(2)
    创建 item 的 tags使用属性 tags 设置 item 的 tag使用 Canvas 的方法 gettags 获取指定 item 的 tags代码:import tkinter as tk root&n...
    99+
    2023-01-30
    tkinter Canvas
  • tkinter -- Canvas(1)
    提供可以用来进行绘图的 Container,支持基本的几何元素,使用 Canvas 进行绘图时,所有的操作都是通过 Canvas,不是通过它的元素元素的表示可以使用 handle 或 tag第一个Canvas程序,指定画布的颜色为白色代码:...
    99+
    2023-01-30
    tkinter Canvas
  • tkinter -- Canvas(4)
    绘制弧形代码;# 绘制弧形 import tkinter as tk root = tk.Tk() # 创建一个 Canvas,设置其背景色为白色 cv&nbs...
    99+
    2023-01-30
    tkinter Canvas
  • tkinter -- Text (3)
    自定义 tag 的两个内置属性tag.first:tag 之前插入文本,此文本不包含在这个 tag 中tag.last:tag 之后插入文本,此文本包含在这个 tag 中代码:import tkinter as ...
    99+
    2023-01-30
    tkinter Text
  • tkinter -- Event(3)
    两个事件同时绑定到一个控件将两个事件绑定为同一个组件代码:import tkinter as tk root = tk.Tk() # 为 root 绑定两个事件...
    99+
    2023-01-30
    tkinter Event
  • Python tkinter学习3 En
    #tk_entry_text.py #学习tk的Entry组件,学习在界面中如何实现输入及显示信息 import tkinter as tk ####################第一步 window = tk.Tk() window....
    99+
    2023-01-31
    Python tkinter En
  • Python Tkinter Canvas画布控件怎么使用
    这篇文章主要讲解了“Python Tkinter Canvas画布控件怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python Tkinter&nbs...
    99+
    2023-06-28
  • Python 的Tkinter包系列之三:Canvas(画布)
    Python 的Tkinter包系列之三:Canvas(画布) Tkinter 的Canvas(画布)控件具有两个功能,首先它可以用来绘制各种图形(图片),比如直线、弧形、椭圆形、多边形和矩形等,也可以在上面放置图片(graphics)、...
    99+
    2023-10-24
    python 开发语言
  • tkinter使用js的canvas实现渐变色
    目录1. 使用rgb表示颜色2. tkinter canvas组件3. 设置渐变3.1 渐变的原理3.2 实例1总结之前呢,我一直对GUI不是很感兴趣,但是呢,最近由于某些特殊原因,...
    99+
    2024-04-02
  • tkinter如何使用js的canvas实现渐变色
    这篇文章主要讲解了“tkinter如何使用js的canvas实现渐变色”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“tkinter如何使用js的canvas实现渐变色”吧!1. 使用rgb表...
    99+
    2023-06-21
  • Python编程tkinter库Canvas实现涂鸦颜色表及围棋盘示例
    目录tkinter库Canvas操作三个实例实例一:涂鸦运行效果图:其它作图函数:实例二:颜色表运行效果图:实例三:围棋盘运行效果图:tkinter库Canvas操作三个实例 实例一...
    99+
    2024-04-02
  • Tkinter canvas的画布参数,删除组件,添加垂直滚动条详解
    目录1、画布 Canvas的参数2、删除鼠标下的组件3、带垂直滚动条的画布总结1、画布 Canvas的参数 from tkinter import * win = Tk() wi...
    99+
    2024-04-02
  • tkinter -- CheckButton
    Checkbutton 又称为多选按钮可以表示两种状态:On 和 Off,可以设置回调函数,每当点击此按钮时回调函数被调用一个简单的Checkbutton例子:示例:import tkinter as tk r...
    99+
    2023-01-30
    tkinter CheckButton
  • tkinter -- button1
    Button 功能触发事件一个简单的button应用示例:import tkinter as tk # 定义button的回调函数 def py3study():   ...
    99+
    2023-01-30
    tkinter
  • tkinter -- Entry
    Entry 用来输入单行文本示例:import tkinter as tk root = tk.Tk() tk.Entry(root, text='input &...
    99+
    2023-01-30
    tkinter Entry
  • tkinter -- RadioButton
    Radiobutton 为单选按钮,即在同一组内只能有一个按钮被选中,每当选中组内的一个按钮时,其它的按钮自动改为非选中态,与其他控件不同的是:它有组的概念不指定绑定变量,每个Radiobutton自成一组创建一个简单的Radiobutto...
    99+
    2023-01-30
    tkinter RadioButton
  • tkinter -- button2
    指定button的宽度和高度width:  宽度height: 高度使用三种方式:1 创建button对象时,指定宽度与高度2 使用属性width和height来指定宽度和高度3 使用configure方法来指定宽度与高度示例:i...
    99+
    2023-01-30
    tkinter
  • tkinter -- Scale
    Scale 为输出限定范围的数字区间,可以为之指定最大值,最小值及步距值创建一个Scale代码:import tkinter as tk root = tk.Tk() tk.Scale(ro...
    99+
    2023-01-30
    tkinter Scale
  • tkinter -- Scrollbar
    Scrollbar(滚动条),可以单独使用,但最多的还是与其它控件(Listbox,Text,Canva 等)结合使用创建一个Scrollbar代码:import tkinter as tk root&nbs...
    99+
    2023-01-30
    tkinter Scrollbar
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作