窗口控制

news2025/2/24 12:06:45

自学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.coloradmin.cn/o/1862845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么样才能让老旧的和颜色受损、丢失的照片重新上色呢?

怎么样才能让老旧的和颜色受损、丢失的照片重新上色呢?大家有时候在家中打扫卫生的时候,偶然发现了自己爸爸妈妈以前拍的照片,但是照片颜色已经受损的很严重了,几乎就是黑白的颜色,很难看清楚爸爸妈妈年轻时候的样子&a…

OpenAI开发者大会:OpenAI如何再次掀起AI领域的浪潮

对于AI行业的从业者来说,他们可能度过了一个不眠之夜。 北京时间2023年11月7日凌晨,美国人工智能公司OpenAI的开发者大会隆重举行。OpenAI的创始人Sam Altman与同事仅用短短45分钟的时间,在台上发布了他们团队的最新成果——GPT-4 Turbo。这一…

【React】portal

createPortal 允许你将 JSX 作为 children 渲染至 DOM 的不同部分。 createPortal(children, domNode, key?) 使用 portal 渲染模态对话框 import NoPortalExample from "./components/NoPortalExample"; import PortalExample from "./components/PortalEx…

学法减分题库最新版,分享几个简单试用的学习和搜题工具 #微信#经验分享#知识分享

告别繁琐的查询步骤,用我们的拍照搜题功能,只需几秒钟,答案就出现在你眼前,让学习变得更加高效便捷。 1.减分侠 这是个辅助学分减分的公众号 根据新的学法减分考试大纲,涵盖小车、客车、货车、摩托车,各…

放弃 VS Code:新代码编辑器 Zed 的时代已经到来(附使用感受)

1.Zed 是什么? Zed 由 Nathan Sobo 和一个曾在 GitHub 开发 Atom 和 Tree-sitter 的团队开发。他们的目标是创建一个快速、简单且用户友好的代码编辑器,以提升开发人员的编码体验。以下是关于 Zed 历史的一些关键点: 起源:团队利…

菲律宾媒体PR发稿:谷歌SEO优化.关键词排名.谷歌收录

1. 引言 在菲律宾,媒体行业的发展日新月异,尤其是在线媒体。为了在这个竞争激烈的市场中脱颖而出,各家媒体纷纷寻求谷歌SEO优化、提升关键词排名和增加谷歌收录的方法。本文将围绕菲律宾的几大主要在线媒体,如菲律宾在线日志Jour…

计算机系统基础知识(下)

嵌入式系统以及软件 嵌入式系统是为了特定应用而专门构建且将信息处理过程和物理过程紧密结合为一体的专用计算机系统,这个系统目前以涵盖军事,自动化,医疗,通信,工业控制,交通运输等各个应用领域&#xff…

Qwen2本地web Demo

Qwen2的web搭建(streamlit) 千问2前段时间发布了,个人觉得千问系列是我用过最好的中文开源大模型,所以这里基于streamlit进行一个千问2的web搭建,来进行模型的测试 一、硬件要求 该文档中使用的千问模型为7B-Instruct,需要5g以…

【大数据】大数据时代的黎明

目录 前言 深入解读大数据的本质 大数据的起源与演进轨迹 大数据对社会经济的深远影响 经济领域的革新 社会治理与公共服务的智能化 创新体系的重构 面临的挑战与应对 前言 步入21世纪以来,人类文明正站在一个历史性的转折点上,迎来了大数据时代的…

关于如何更好管理好数据库的一点思考

本文尝试从数据库设计理论、ER图简介、性能优化、避免过度设计及权限管理方面进行思考阐述。 一、数据库范式 以下通过详细的示例说明数据库范式的概念,将逐步规范化一个例子,逐级说明每个范式的要求和变换过程。 示例:学生课程登记系统 初始…

汽车零部件制造企业如何选择合适的ESOP电子作业指导书系统

随着汽车产业的不断发展,汽车零部件制造企业在提高生产效率和产品质量方面面临着越来越大的挑战。为了解决这些问题,越来越多的汽车零部件制造企业开始采用ESOP电子作业指导书系统,以帮助他们管理和优化生产流程。但是,在选择合适…

win7使用vue-cli创建vue3工程

1.创建名为test的项目 vue create test 回车以后选择第三个,进行手动选择 2.选择配置 向下箭头表示下一个,空格表示*选中,按照我的选择来选即可,选完后回车 3.选择vue.js版本 上线箭头进行选择,选择后回车 4.选择不同的配置&#…

一个实例配置多个服务名

更改参数实现配置多个服务名 需求背景 在做案例模拟的时候发现博主的环境配置的是3个服务名,通常都是一个服务名,服务名就是数据库名,出于好奇进行了以下实验。 环境:Oracle 11.2.0.4 单点 配置多个服务名的意义 可以通过服务…

【CT】LeetCode手撕—72. 编辑距离

目录 题目1- 思路动规五部曲 2- 实现⭐72. 编辑距离——题解思路 3- ACM 实现 题目 原题连接:72. 编辑距离 1- 思路 模式识别:编辑举例 ——> 动态规划 动规五部曲 1.dp数组的含义 int[][] dp new int[word1.length()][word2.length()];以 i-1 …

正则表达式;grep、sed、awk、soft、uniq、tr 详解

正则表达式 概念 正则表达式(Regular Expression,常简写为regex、regexp或RE)是一种强大的文本处理工具,它使用一种特殊的字符序列来帮助用户检查一个字符串是否与某种模式匹配。 标准正则表达式 首先安装正则表达式pcre库 创…

10--7层负载均衡集群

前言:动静分离,资源分离都是在7层负载均衡完成的,此处常被与四层负载均衡比较,本章这里使用haproxy与nginx进行负载均衡总结演示。 1、基础概念详解 1.1、负载均衡 4层负载均衡和7层负载均衡是两种常见的负载均衡技术&#xff…

黑马程序员——Spring框架——day08——maven高级

目录: 分模块开发与设计 分模块开发的意义 问题导入模块拆分原则分模块开发(模块拆分) 问题导入创建Maven模块书写模块代码通过maven指令安装模块到本地仓库(install指令)依赖管理 依赖传递 问题导入可选依赖 问题导入…

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

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

实现批量自动化电商数据采集|商品详情页面|店铺商品信息|订单详情数据

电商数据采集是指通过技术手段获取电商平台上的商品信息、店铺信息和订单信息等数据。这些数据可以用于市场分析、竞品分析、用户行为分析等。 商品详情页面是指电商平台上展示商品详细信息的页面,包括商品名称、价格、图片、描述、评价等信息。通过采集商品详情页…

Word如何在页眉中插入和删除横线

你平常是否遇见到Word的页眉中有一条横线,怎么也删不了!!! 今天刘小生分享如何在页眉中插入和删除横线,我们一起操练起来吧! 1、Word页眉插入横线 选择【插入】-【页眉页脚】,在“页眉页脚”…