首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【tkinter系列 第九课 Canvas窗口部件 】

【tkinter系列 第九课 Canvas窗口部件 】

作者头像
叶子陪你玩
发布于 2020-03-12 07:22:57
发布于 2020-03-12 07:22:57
1.4K0
举报
前言

python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。

本节课将要学习Canvas窗口部件,Canvas是画布的意思,那什么时候该用Canvas部件呢?通常用于显示和编辑图形和其他绘图。这个小部件的另一个常见用途是实现各种自定义小部件。例如,您可以通过在画布上绘制直线、椭圆、多边形、矩形和显示图片。

绘制图形

代码:

代码语言:javascript
AI代码解释
复制
from tkinter import *

root = Tk()
root.geometry("400x200")

w = Canvas(root, width=200, height=100,bg="yellow")
w.pack()
# 绘制直线 起点 和 终点
w.create_line(0, 0, 200, 100)
# dash绘制虚线,前面一个数字表示长度,后面表示间隔
w.create_line(0, 100, 200, 0, fill="red", dash=(5,5))
# 绘制矩形 左上角 右下角坐标 填充颜色
w.create_rectangle(50, 25, 150, 75, fill="blue")

mainloop()

效果:

解释:

在画布中绘制内容,使用 create 方法添加新项。createline() 绘制线段 createrectangle() 绘制矩形

显示图片

代码:

代码语言:javascript
AI代码解释
复制
from tkinter import *

root = Tk()
root.geometry("400x200")

w = Canvas(root, width=200, height=100,bg="yellow")
w.pack()
# 使用PhotoImage方法加载图片
photo = PhotoImage(file="test.png")

# 显示图片

前面两个数字表示图片显示位置 锚点默认图片中心 anchor参数可以更改锚点
w.create_image(100,50,image=photo)
# w.create_image(100,0,anchor="n",image=photo)
# w.create_image(0,0,anchor="nw",image=photo)
mainloop()

效果:

默认 anchor="center"。

anchor="n",设置定边中间为锚点。

anchor="nw" ,设置左上角为锚点。

拓展:

除了Canvas可以显示图片,按钮和标签控件同样也是可以显示图片的。

代码:

代码语言:javascript
AI代码解释
复制
from tkinter import *

root = Tk()
root.geometry("400x200")

# 使用PhotoImage方法加载图片
photo = PhotoImage(file="test.png")

l = Label(root, image=photo,  width=200, bg="red")
l.pack()

button = Button(root,image=photo)
button.pack()

mainloop()

效果:

参考:

http://effbot.org/tkinterbook/canvas.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL 8.0新特性: 数据字典
目前MySQL 8.0最新版本为8.0.23版本,针对8.0的新特性,从春节前开始做了一些相关学习和测试,后续会不阶段的分享一些8.0的新特性,供大家一起参考和学习;
SEian.G
2021/03/03
2.5K0
关于MySQL库表名大小写问题
一般在数据库使用规范中,我们都会看到这么一条:库名及表名一律使用小写英文。你有没有思考过,为什么推荐使用小写呢?库表名是否应该区分大小写呢?带着这些疑问,我们一起来看下本篇文章。
MySQL技术
2021/07/05
8.5K0
【MySQL数据库疑难杂症】常用的两种升级方法
动态修改innodb_fast_shutdown=0,以执行full purge(当innodb_fast_shutdown=0时,MySQL在执行关闭mysqld进程时,会对不再需要的undo log page进行清理,该清理动作非人为触发)和插入缓冲合并等操作,以干净的方式关闭MySQL。
samRsa
2025/02/11
3610
【MySQL数据库疑难杂症】常用的两种升级方法
MySQL数据字典提示1146不存在的问题解决
最近某套MySQL因为磁盘挂载问题,异常宕机,拉起后,数据库能正常访问了,但是在error.log一直提示这个错误,
bisal
2021/09/18
1.3K0
MySQL数据字典提示1146不存在的问题解决
MySQL 8.0 数据字典有哪些变化?
墨墨导读:MySQL8.0 数据字典(Data Dictionary)也在进化中。MyISAM系统表全部换成InnoDB表 ,支持原子DDL。复杂度增加了。考虑过是否跟业务数据库有资源抢夺的现象,这些都是实际使用中需要观察关注的问题。
数据和云
2020/06/17
2.4K0
MySQL 8.0新特性 — 事务性数据字典与原子DDL
事务性数据字典与原子DDL,是MySQL 8.0推出的两个非常重要的新特性,之所以将这两个新特性放在一起,是因为两者密切相关,事务性数据字典是前提,原子DDL是一个重要应用场景。
brightdeng@DBA
2020/08/17
1.9K0
MySQL 8.0新特性 — 事务性数据字典与原子DDL
mysql常用命令
这几天学习了一下mysql,对于mysql的命令总结如下,发现很多方面和oracle还是差别挺大的。 # mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.14-enterprise-commercial-advanced Copyright (c) 2000, 2013, Or
jeanron100
2018/03/13
1.2K0
Xtrabackup实现数据的备份与恢复
Xtrabackup介绍 Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁);mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适合。 Xtrabackup安装完成后有4个可执行文件,其中2个比较重要的备份工具是innobackupex、xtrabackup 1)xtrabackup 是专门用来备份InnoDB
企鹅号小编
2018/01/31
1.6K0
Xtrabackup实现数据的备份与恢复
MySQL和Oracle对比学习之数据字典元数据(r4笔记第33天)
MySQL和Oracle虽然在架构上有很大的不同,但是如果从某些方面比较起来,它们有些方面也是相通的。 毕竟学习的主线是MySQL,所以会从MySQL的角度来对比Oracle的一些功能。大体总结了以下的内容,欢迎大家拍砖, 查看当前的数据库名 mysql> SELECT DATABASE(); +------------+ | DATABASE() | +------------+ | test | +------------+ 1 row in set (0.00 sec) +++ Or
jeanron100
2018/03/15
7890
MySQL(十四)之数据备份与还原
前言   上一篇分享了关于MySQL事务的知识,在我们数据库中最重要的就是数据了,所以数据的备份就显的特别的重要!   为什么要备份数据?   在生产环境中我们数据库可能会遭遇各种各样的不测从而导致数据丢失, 大概分为以下几种:     硬件故障、软件故障、自然灾害、黑客攻击、误操作(占比例大)   所以, 为了在数据丢失之后能够恢复数据, 我们就需要定期的备份数据, 备份数据的策略要根据不同的应用场景进行定制, 大致有几个参考数值, 我们可以根据这些数值从而定制符合特定环境中的数据备份策略:     能够
用户1195962
2018/01/18
3.5K0
MySQL(十四)之数据备份与还原
详解MySQL-8.0数据字典
提示:公众号展示代码会自动折行,建议横屏阅读 ---- 1. 引言 ---- 数据字典(Data Dictionary)中存储了诸多数据库的元数据信息如图1所示,包括基本Database, table, index, column, function, trigger, procedure,privilege等;以及与存储引擎相关的元数据,如InnoDB的tablespace, table_id, index_id等。MySQL-8.0在数据字典上进行了诸多优化,本文将对其进行逐一介绍。 图1 2.
腾讯数据库技术
2019/05/16
7K0
详解MySQL-8.0数据字典
MySQL-8.0 | 数据字典最强解读
数据字典(Data Dictionary)中存储了诸多数据库的元数据信息如图1所示,包括基本Database, table, index, column, function, trigger, procedure,privilege等;以及与存储引擎相关的元数据,如InnoDB的tablespace, table_id, index_id等。MySQL-8.0在数据字典上进行了诸多优化,本文将对其进行逐一介绍。
数据和云
2019/05/13
4.3K0
4种备份MySQL数据库(基本备份方面问题不大了)
我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢失、或者丢失后可以快速恢复呢?只要看完这篇, 大家应该就能对MySQL中实现数据备份和恢复能有一定的了解。 为什么需要备份数据? 其实在前言中也大概说明了为什么要备份数据, 但是我们还是应该具体了解一下为什么要备份数据 在生产环境中我们数据库可能会遭遇各种各样的不测从而
老七Linux
2018/05/31
3.8K0
MySQL案例:各类临时文件的存放位置
在MySQL中,存在各种各样的临时文件,其存放位置是五花八门,且不同版本也不尽相同,主要包括以下:
brightdeng@DBA
2020/09/02
7.1K1
MySQL案例:各类临时文件的存放位置
MySQL数据备份与恢复
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql_bin.000003 > /opt/mysql_bin003.txt
Alone-林
2023/03/17
3.7K0
计算MySQL表碎片的SQL整理
当然整理的过程不光是知识梳理的过程,也是转化为实践场景的一个过程,通过这样一个体系,对于整个MySQL对象生命周期管理有了较为深入的认识,这里我来抛砖引玉,来作为深入学习MySQL数据字典的一个入口,这个问题就是:如何较为准确的计算MySQL碎片情况?
jeanron100
2019/09/26
3.3K0
计算MySQL表碎片的SQL整理
Docker下MySQL主从三部曲之三:binlog日志参数实战
本章是《Docker下MySQL主从三部曲》的终篇,前面的章节我们能够制作镜像来搭建主从同步环境,本章我们来观察binlog参数MASTER_LOG_POS;
程序员欣宸
2022/05/06
5430
索引(MySQL)
索引:提高数据库的性能,索引是物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行 正确的 create index ,查询速度就可能提高成百上千倍。但是天下没有免费的午餐,查询速度的提高 是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO。所以它的价值,在于提高一个 海量数据的检索速度。
ljw695
2025/05/31
2300
索引(MySQL)
MySQL 8.0 information_schema.tables表和之前版本的差异
在做自动化运维开发过程中,需要从information_schema.tables获取MySQL表相关的元信息,发现MySQL8.0和5.7存在的差异还是比较大的;在MySQL8.0以前,通常会通过infomation_schema的表来获取一些元数据,例如从tables表中获取表的下一个auto_increment值,从indexes表获取索引的相关信息等。
SEian.G
2021/12/13
2K0
MySQL 管理
-e选项可以在Mysql客户端执行SQL语句,而不用连接到MySQL数据库再执行,对于一些批处理脚本,这种方式尤其方便。
用户9615083
2022/12/25
1.5K0
MySQL 管理
相关推荐
MySQL 8.0新特性: 数据字典
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档