窗口控制

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

海龟绘图窗口就是在运行了导入turtle模块并调用了绘图方法的Python文件后,打开的窗口。该窗口默认的宽度为屏幕的50%,高度为屏幕的75%,背景为白色,位于屏幕的中心位置。在绘图时,我们可以设置它的大小、颜色和初始位置等。另外,也可以设置它的标题、背景颜色、背景图片等。下面分别进行介绍。

设置窗口的尺寸和初始位置

在海龟绘图中,提供了setup()方法设置海龟绘图窗口的尺寸、颜色和初始位置。setup()方法的语法如下:

turtle.setup(width="width", height="height", startx="leftright", starty="topbottom")

参数说明:

l  width :设置窗口的宽度,可以是表示大小为多少像素的整型数值,也可以是表示屏幕占比的浮点数值;默认为屏幕的50%。

l  height :设置窗口的高度,可以是表示大小为多少像素的整型数值,也可以是表示屏幕占比的浮点数值;默认为屏幕的50%。

l  startx :设置窗口的x轴位置,设置为正值,表示初始位置距离屏幕左边缘多少像素,负值表示距离右边缘,None表示窗口水平居中。

l  starty :设置窗口的y轴位置,设置为正值,表示初始位置距离屏幕上边缘多少像素,负值表示距离下边缘,None表示窗口垂直居中。

例如,设置窗口宽度为400,高度为300,距离屏幕的左边缘50像素,上边缘30像素,代码如下:

turtle.setup(width=400, height=300, startx=50, starty=30)

再例如,设置宽度和高度都为屏幕的50%,并且位于屏幕中心,代码如下:

turtle.setup(width=.5, height=.5, startx=None, starty=None)

设置窗口标题

海龟绘图的主窗口默认的标题为“Python Turtle Graphics”,可以通过title()方法为其设置新的标题。title()方法的语法如下:

turtle.title(titlestring)

其中,titlestring参数用于指定标题内容。

例如,将海龟绘图窗口的标题设置为“绘制第一只海龟”,代码如下:

turtle.title('绘制第一只海龟')

程序运行结果如图15.6所示。

图15.6  设置窗口的标题

设置窗口的背景颜色

海龟绘图的主窗口默认的背景颜色为白色,通过bgcolor()方法可以改变其背景颜色。bgcolor()方法的语法格式如下;

turtle.bgcolor(*args)

args参数为可变参数,可以是一个颜色字符串(可以使用英文颜色或者十六进制颜色值,常用的颜色字符串如表15.1所示);也可以是三个取值范围在0~cmode之间的数值(如1.0,0.5,0.5,分别代表r,g,b 的值),还可以是一个取值范围相同的包括3个数值元素(取值范围在0~cmode)的元组(如(1.0,0.5,0.5),分别代表r,g,b的值)。

说明: cmode为颜色模式,其值为数值1.0 或255。海龟绘图默认为1.0。如果想要设置为255,可以通过

以下代码设置:

turtle.colormode(255)

执行上面代码后,cmode的值为255,此时args 参数可以设置为“(192,255,128)”或者“192,255,128”。

表15.1  常用的颜色字符串

颜    色

中文颜 色

英 文 颜 色

十六进制颜色值

255模式颜色值

1.0模式颜色值

浅粉色

lightpink

#FFB6C1

255,182,193

1.0,0.73,0.75

粉红

pink

#FFC0CB

255,192,203

1.0,0.75,0.79

深粉色

deeppink

#FF1493

255,20,147

1.0,0.07,0.57

紫色

purple

#800080

128,0,128

0.5,0,0.5

纯蓝色

blue

#0000FF

0,0,255

0,0,1

宝蓝色

royalblue

#4169E1

65,105,225

0.25,0.4,0.88

天蓝色

skyblue

#87CEEB

135,206,235

0.53,0.8,0.92

浅蓝色

lightblue

#ADD8E6

173,216,230

0.67,0.79,0.9

蓝绿色

cyan

#00FFFF

0,255,255

0,1,1

墨绿色

darkslategray

#2F4F4F

47,79,79

0.18,0.31,0.31

淡绿色

lightgreen

#90EE90

144,238,144

0.56,0.93,0.56

绿黄色

lime

#00FF00

0,255,0

0,1,0

纯绿色

green

#008000

0,128,0

0,0.5,0

纯黄色

yellow

#FFFF00

255,255,0

1,1,0

金色

gold

#FFD700

255,215,0

1,0.84,0

橙色

orange

#FFA500

255,165,0

1,0.65,0

纯红色

red

#FF0000

255,0,0

1,0,0

浅灰色

lightgray

#D3D3D3

211,211,211

0.83,0.83,0.83

灰色

gray

#808080

128,128,128

0.5,0.5,0.5

纯黑色

black

#000000

0,0,0

0,0,0

纯白色

white

#FFFFFF

255,255,255

1,1,1

例如,设置窗口背景颜色为淡绿色,可以使用下面的代码:

turtle.bgcolor('lightgreen')

或者

turtle.bgcolor(0.56,0.93,0.56)

再或者

turtle.colormode(255) # 设置颜色模式

turtle.bgcolor(144,238,144)

设置窗口的背景图片

在海龟绘图中,可以使用bgpic()方法为窗口设置指定的图片作为背景。bgpic()方法的语法如下:

turtle.bgpic(picname=None)

其中,picname参数用于指定背景图片的路径。可以使用相对路径或者绝对路径。例如,将要作为背景的图片放置在与Python文件相同的目录下,名称为mrbg.png,那么可以使用下面的代码将其设置为窗口的背景:

turtle.bgpic('mrbg.png')

程序运行效果如图15.7所示。

图15.7  为窗口设计背景

清空屏幕上的绘图

在海龟绘图中,清空屏幕上绘图主要有3个方法,下面分别进行介绍。

l  reset()方法

reset()方法用于复位绘图,即删除屏幕中指定海龟的绘图,并且让该海龟回到原点并设置所有变量为默认值。

例如,要删除屏幕上名称为t_ufo的海龟的绘图,并让它回到原点,可以使用以下代码:

t_ufo.reset()

l  clear()方法

clear()方法用于从屏幕中删除指定海龟的绘图,但不移动海龟。海龟的状态和位置以及其他海龟的绘图不受影响。

例如,要删除屏幕上名称为t_ufo的海龟的绘图,并让它在原地不动,可以使用以下代码:

t_ufo.clear()

l  clearscreen()方法

clearscreen()方法不仅会清空绘图,也会清空背景颜色及图片,并且海龟会回到原点。

例如,要删除屏幕上所有海龟的绘图,并让它回到原点,可以使用以下代码:

turtle.clearscreen()

说明:使用clearscreen()方法清空屏幕时,将海龟窗口重置为初始状态,即白色背景,无背景图片,无

事件绑定并启用追踪。

关闭窗口

在海龟绘图中,可以通过bye()方法关闭窗口。例如,在绘制图形后,直接关闭当前窗口,代码如下:

turtle.bye()

说明:在海龟绘图中,也可以使用exitonclick()方法实现单击鼠标左键时关闭窗口。

动手试一试

任务一:创建一个水果消消乐游戏的窗口

本任务要求:创建一个水果消消乐游戏的窗口,要求窗口标题为“缤纷水果消消乐”,背景颜色为淡绿色,窗口大小为450*450,效果如图15.8所示。

任务二:创建公筷公勺的倡议窗口

本任务要求:创建一个公筷公勺倡议窗口,要求窗口标题为“公筷公勺从我做起”,窗口大小为800*800,效果如图15.9所示。

图15.8  创建一个水果消消乐游戏的窗口

图15.9  创建公筷公勺倡议窗口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/744315.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣62 不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 输入&…

基于肤色模型的人脸识别,基于野火FPGA ZYNQ开发板

使用芯片为ZYNQ—7020,基于野火FPGA ZYNQ开发板 肤色模型简介 YCrCb也称为YUV,主要用于优化彩色视频信号的传输。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。其…

【博士每天一篇文献-算法】Fearnet Brain-inspired model for incremental learning

阅读时间:2023-12-16 1 介绍 年份:2017 作者:Ronald Kemker,美国太空部队;Christopher Kanan,罗切斯特大学 期刊: arXiv preprint 引用量:520 Kemker R, Kanan C. Fearnet: Brain-…

大学生必备!GitHub星标破千的matlab教程(从新手到骨灰级玩家)

MATLAB(Matrix Laboratory)是MathWorks公司推出的用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的商业数学软件。 MATLAB具有数值分析、数值和符号计算、工程与科学绘图、数字图像处理、财务与金融工程等功能&#xf…

速卖通自养号测评:安全高效的推广手段

在速卖通平台上,卖家们常常寻求各种方法来提升商品的曝光、转化率和店铺权重。其中,自养号测评作为一种低成本、高回报的推广方式,备受关注。然而,若操作不当,也可能带来风险。以下是如何安全有效地进行自养号测评的指…

这就是人性的丑恶,很残酷但很现实

这些年我喜欢跟垃圾撕破脸,包括垃圾亲戚,我是不会跟你讲什么感情的,该滚蛋就滚蛋。我最不喜欢听什么今日留一线,日后好相见。 之前我还不懂事的时候,就有那种亲戚叫我帮他介绍工作,我照做了。 结果&#xf…

Jenkins定时构建自动化(五):手动+定时构建执行本地+运行代码需要传参

Jenkins定时构建自动化(五):手动定时构建执行本地运行代码需要传参 注:走到这一步,恭喜你学会了基本的jenkins代码执行,如果想要继续学习先去看python的argparse模块和argparse模块示例,也可以直接看argparse模块示例进…

React@16.x(40)路由v5.x(5)常见应用场景(2)- 实现类似 vue 的路由模式

目录 1,vue-router2,React 模拟实现 1,vue-router vue 的路由配置文件, // src/router/index.ts const routes [{path: "/news",children: [{ path: "", component: NewsView },{ path: "detail"…

免费领!系统学习上位机编程的流程与基础教程

上位机电气自动化plc编程全套入门教程工具 华山编程导师根据当前招聘需求的关键点,原创录制了一套系统的学习流程和基础教程,帮助你从快速入门到掌握上位机编程的技能。 二. 学习准备 为了更好地学习并实现80%以上的代码运行,建议准备一个工…

大学生搜题神器网站?分享七个支持答案和解析的工具 #职场发展#学习方法

在现代科技的帮助下,大学生们有幸能够利用各种日常学习工具来提升自己的学习效果。 1.全球翻译官 是一款在线翻译语言的服务平台,在app中,用户能够在线通过语音,拍照来翻译语言,非常的便捷,也支持文字翻译哦 全球翻…

第一百二十七节 Java面向对象设计 - Java枚举方法

Java面向对象设计 - Java枚举方法 因为枚举类型实际上是一个类类型,所以我们可以在枚举类型体中声明一切,我们可以在类体中声明它。 以下代码使用字段,构造函数和方法定义了一个级别枚举。 public enum Level {LOW(30), MEDIUM(15), HIGH(7…

5.How Fast Should You Be When Learning?(你应该用多快的速度学习? (一))

Normally when I talk about learing quickly, I’m using speed as a synonym for efficiency.Use more effective methods and you’ll learn more in less time.All else being equal, that means you’re learing faster. 通常我在谈到快速学习时,是把“速度&qu…

埃特巴什码加解密小程序

埃特巴什码加解密小程序 这几天在看CTF相关的课程,涉及到古典密码学和近代密码学还有现代密码学。 简单替换密码 Atbash Cipher 埃特巴什码(Atbash Cipher)其实可以视为下面要介绍的简单替换密码的特例,它使用字母表中的最后 一个字母代表第一个字母…

SSLyze:一款快速高效的SSLTLS扫描工具

关于SSLyze SSLyze是一款快速高效且功能强大的SSL/TLS扫描工具,同时它也是一个Python库。 SSLyze在与目标服务器连接成功之后,可以对目标目标服务器的SSL/TLS配置进行扫描和分析,并确保其使用健壮的加密设置,包括证书、密码套件和…

SQL连接与筛选:解析left join on和where的区别及典型案例分析

文章目录 前言数据库在运行时的执行顺序一、left join on和where条件的定义和作用left join on条件where条件 二、left join on和where条件的区别原理不同left join原理:where原理: 应用场景不同执行顺序不同(作用阶段不同)结果集…

一文入门Makefile

今天我们来玩玩Makefile。 这边是借鉴的陈皓老师的《跟我一起写 Makefile》 pdf下载链接如下。 链接:https://pan.baidu.com/s/1woRq2nEkgzLv1o5uE0FZHg?pwdmhrh 提取码:mhrh 我们之前已经算是入门了gcc,那我们的下一站就是Makefile&…

每日一题——Python实现PAT甲级1144 The Missing Number(举一反三+思想解读+逐步优化)四千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 时间复杂度分析 空间复杂度分析 总体空间复杂度:O(N) 总结 我…

洗地机什么牌子耐用?四款高品质洗地机型号强烈安利

在快节奏的现代生活中,保持家庭清洁成为了许多人的挑战。传统的清洁方式不仅耗时费力,还难以彻底清洁地板上的污渍和毛发。特别是对于有宠物的家庭,毛发的清理更是让人头疼。如果有一款洗地机,既能高效清洁又能省时省力&#xff0…

Matlab|风光及负荷多场景随机生成与缩减

目录 1 主要内容 计算模型 场景生成与聚类方法应用 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序方法复现了《融合多场景分析的交直流混合微电网多时间尺度随机优化调度策略》3.1节基于多场景技术的随机性建模部分,该部分是随机优化调度的重要组成部分…

从0到1构建自己的短链接系统

1. 短链系统简介 1.1 短链系统的定义与用途 短链系统是指将一个较长的URL地址,通过特定的算法生成一个较短的、具备唯一性的URL地址。这种系统广泛应用于社交网络、短信、邮件营销等场景,它能帮助用户在字数受限的情况下分享链接,并且还具有…