-
2020-11-25 08:23:45
我正在编写一个绘图程序,我试图做出一个选择,改变画布背景颜色,但由于某些原因,它不起作用。没有错误信息,我不知道为什么它不起作用,因为我用了几乎相同的代码来改变线的颜色。在
另外,我对python很陌生。在
代码:from tkinter import *
# canvas specifications/variables
canvas_height = 400
canvas_width = 600
p1_canvas_colour = "white"
p1_canvas_colour_number = 1
#p1 (what you draw with) specifications/variables
p1_x = canvas_width/2
p1_y = canvas_height
p1_colour = "black"
p1_colour_change = 1
line_width = 1
line_length = 1
#p1 controls
def p1_move_N(event):
global p1_y
canvas.create_line(p1_x, p1_y, p1_x, (p1_y-line_length), width=line_width, fill=p1_colour)
p1_y = p1_y - line_length
def p1_move_S(event):
global p1_y
canvas.create_line(p1_x, p1_y, p1_x, (p1_y+line_length), width=line_width, fill=p1_colour)
p1_y = p1_y + line_length
def p1_move_E(event):
global p1_x
canvas.create_line(p1_x, p1_y, (p1_x+line_length), p1_y, width=line_width, fill=p1_colour)
p1_x = p1_x + line_length
def p1_move_W(event):
global p1_x
canvas.create_line(p1_x, p1_y, (p1_x-line_length), p1_y, width=line_width, fill=p1_colour)
p1_x = p1_x - line_length
def erase_all(event):
canvas.delete(ALL)
#the p1 colour change
def p1_line_colour_change(event):
global p1_colour
global p1_colour_change
p1_colour_change += 1
if p1_colour_change == 1:
p1_colour = ("black")
if p1_colour_change == 2:
p1_colour = ("white")
if p1_colour_change == 3:
p1_colour = ("red")
if p1_colour_change == 4:
p1_colour = ("orange")
if p1_colour_change == 5:
p1_colour = ("yellow")
if p1_colour_change == 6:
p1_colour = ("green")
if p1_colour_change == 7:
p1_colour = ("blue")
if p1_colour_change == 8:
p1_colour = ("purple")
if p1_colour_change == 9:
p1_colour = ("pink")
if p1_colour_change == 10:
p1_colour = ("brown")
if p1_colour_change == 11:
p1_colour_change = 1
p1_colour = ("black")
#the canvas colour change
def p1_canvas_colour_change(event):
global p1_canvas_colour
global p1_canvas_colour_number
p1_canvas_colour_number += 1
if p1_canvas_colour_number == 1:
p1_canvas_colour = ("white")
if p1_canvas_colour_number == 2:
p1_canvas_colour = ("black")
if p1_canvas_colour_number == 3:
p1_canvas_colour = ("red")
if p1_canvas_colour_number == 4:
p1_canvas_colour = ("orange")
if p1_canvas_colour_number == 5:
p1_canvas_colour = ("yellow")
if p1_canvas_colour_number == 6:
p1_canvas_colour = ("green")
if p1_canvas_colour_number == 7:
p1_canvas_colour = ("blue")
if p1_canvas_colour_number == 8:
p1_canvas_colour = ("purple")
if p1_canvas_colour_number == 9:
p1_canvas_colour = ("pink")
if p1_canvas_colour_number == 10:
p1_canvas_colour = ("brown")
if p1_canvas_colour_number == 11:
p1_canvas_colour_number = 1
p1_canvas_colour = ("white")
#the window/canvas
window = Tk()
window.title("Drawing")
canvas = Canvas(bg=p1_canvas_colour, height=canvas_height, width=canvas_width, highlightthickness=0)
canvas.pack()
#binding the functions to keys
window.bind("", p1_move_N)
window.bind("", p1_move_S)
window.bind("", p1_move_W)
window.bind("", p1_move_E)
window.bind("", erase_all)
window.bind("", p1_line_colour_change)
window.bind("", p1_canvas_colour_change)
window.mainloop()
更多相关内容 -
python turtle绘图自定义画布背景颜色
2022-02-13 18:27:41这里只介绍如何设置画布背景颜色。它一般是在绘图的最开始进行设置的,可以使用 screensize(width, height, bg) 函数,其中的三个参数分别是画布的宽、高、背景颜色。宽高的单位是像素,如果用小数表示,则是以屏幕...你好,我是乐博星际。
turtle 是 python 一个简单好用的绘图包,它可以通过设计坐标来实时控制绘图。安装很简单,一行命令:
pip install turtle
这里只介绍如何设置画布背景颜色。它一般是在绘图的最开始进行设置的,可以使用
screensize(width, height, bg)
函数,其中的三个参数分别是画布的宽、高、背景颜色。宽高的单位是像素,如果用小数表示,则是以屏幕宽高的百分比来确定大小的。但是如果只设置画布大小,是没法控制窗口的大小的,窗口大小需要使用
setup(width, height, X, Y)
函数来进行设置。前两个参数依旧是宽高,后边X和Y是设置窗口坐标的,默认是以窗口中心为坐标原点,X 轴水平向右,Y 轴垂直向上。窗口和画布的区别是:窗口可以控制显示窗口的大小,而画布是窗口内绘图区的大小,如果画布大小大于窗口,那么窗口上就会出现滚动条。背景颜色有两种表示方式,一种是常见的颜色,直接使用对应的英文描述即可,比如 “black”、“white”、“yellow”、“pink”、“blue”、"red"等等。比如我要一张宽和高均为屏幕 0.5 倍的窗口,背景颜色为绿色:import turtle as t # 导入turtle包 t.setup(0.5, 0.5) # 设置窗口大小 t.screensize(bg="green") # 设置背景颜色 t.done() # 绘制完毕(一定加上这行才不会卡死)
但是,如果我想要设置非常见颜色为画布背景,该怎么办呢?这就要用到颜色的第二种表达方式——十六进制。十六进制的RGB颜色对照表可以点击这里 查看。比如这里我想要一张宽500像素,高600像素的圣诞绿画布,代码及效果如下:
import turtle as t # 导入turtle包 t.setup(500, 600) # 设置窗口大小 t.screensize(bg="#006400") # 设置画布大小及背景颜色 t.done() # 绘制完毕(一定加上这行才不会卡死)
乐博星际少儿编程
人材之成,立于幼学而启于妙思;
星际浩瀚,创不止步方行于未来。
如果你对少儿编程感兴趣欢迎,关注公众号:乐博星际少儿编程,后台回复关键词:客服,进行联系。
地址:莆田 -
Python Tkinter窗口背景/画布颜色不变
2021-07-19 16:17:26I am very new to python. Code: from tkinter import * # canvas specifications/variables canvas_height = 400 canvas_width = 600 p1_canvas_colour = "white" p1_canvas_colour_number = 1 #p1 (what you draw...I am coding a drawing program and I am trying to make an option to change the canvas background colour but for some reason it doesn't work. There is no error message and I have no idea why it doesn't work as I used pretty much the same code for changing the line colour.
P.S. I am very new to python.
Code:
from tkinter import *
# canvas specifications/variables
canvas_height = 400
canvas_width = 600
p1_canvas_colour = "white"
p1_canvas_colour_number = 1
#p1 (what you draw with) specifications/variables
p1_x = canvas_width/2
p1_y = canvas_height
p1_colour = "black"
p1_colour_change = 1
line_width = 1
line_length = 1
#p1 controls
def p1_move_N(event):
global p1_y
canvas.create_line(p1_x, p1_y, p1_x, (p1_y-line_length), width=line_width, fill=p1_colour)
p1_y = p1_y - line_length
def p1_move_S(event):
global p1_y
canvas.create_line(p1_x, p1_y, p1_x, (p1_y+line_length), width=line_width, fill=p1_colour)
p1_y = p1_y + line_length
def p1_move_E(event):
global p1_x
canvas.create_line(p1_x, p1_y, (p1_x+line_length), p1_y, width=line_width, fill=p1_colour)
p1_x = p1_x + line_length
def p1_move_W(event):
global p1_x
canvas.create_line(p1_x, p1_y, (p1_x-line_length), p1_y, width=line_width, fill=p1_colour)
p1_x = p1_x - line_length
def erase_all(event):
canvas.delete(ALL)
#the p1 colour change
def p1_line_colour_change(event):
global p1_colour
global p1_colour_change
p1_colour_change += 1
if p1_colour_change == 1:
p1_colour = ("black")
if p1_colour_change == 2:
p1_colour = ("white")
if p1_colour_change == 3:
p1_colour = ("red")
if p1_colour_change == 4:
p1_colour = ("orange")
if p1_colour_change == 5:
p1_colour = ("yellow")
if p1_colour_change == 6:
p1_colour = ("green")
if p1_colour_change == 7:
p1_colour = ("blue")
if p1_colour_change == 8:
p1_colour = ("purple")
if p1_colour_change == 9:
p1_colour = ("pink")
if p1_colour_change == 10:
p1_colour = ("brown")
if p1_colour_change == 11:
p1_colour_change = 1
p1_colour = ("black")
#the canvas colour change
def p1_canvas_colour_change(event):
global p1_canvas_colour
global p1_canvas_colour_number
p1_canvas_colour_number += 1
if p1_canvas_colour_number == 1:
p1_canvas_colour = ("white")
if p1_canvas_colour_number == 2:
p1_canvas_colour = ("black")
if p1_canvas_colour_number == 3:
p1_canvas_colour = ("red")
if p1_canvas_colour_number == 4:
p1_canvas_colour = ("orange")
if p1_canvas_colour_number == 5:
p1_canvas_colour = ("yellow")
if p1_canvas_colour_number == 6:
p1_canvas_colour = ("green")
if p1_canvas_colour_number == 7:
p1_canvas_colour = ("blue")
if p1_canvas_colour_number == 8:
p1_canvas_colour = ("purple")
if p1_canvas_colour_number == 9:
p1_canvas_colour = ("pink")
if p1_canvas_colour_number == 10:
p1_canvas_colour = ("brown")
if p1_canvas_colour_number == 11:
p1_canvas_colour_number = 1
p1_canvas_colour = ("white")
#the window/canvas
window = Tk()
window.title("Drawing")
canvas = Canvas(bg=p1_canvas_colour, height=canvas_height, width=canvas_width, highlightthickness=0)
canvas.pack()
#binding the functions to keys
window.bind("", p1_move_N)
window.bind("", p1_move_S)
window.bind("", p1_move_W)
window.bind("", p1_move_E)
window.bind("", erase_all)
window.bind("", p1_line_colour_change)
window.bind("", p1_canvas_colour_change)
window.mainloop()
解决方案
you need to reconfigure your canvas in order to apply the change,
add the following line at the end of your "p1_canvas_colour_change" method:
canvas.configure(background=p1_canvas_colour)
-
python中matplotlib条件背景颜色的实现
2021-01-01 02:53:05如何根据图表中没有的变量更改折线图的背景颜色?例如,如果我有以下数据帧: import numpy as np import pandas as pd dates = pd.date_range('20000101', periods=800) df = pd.DataFrame(index=dates) df['A'] =... -
Python设置画布大小_Python Tkinter Canvas画布
2020-11-20 09:42:34简介画布部件则用于将结构化图形的 Python 应用。它是用于绘制图表和曲线图的 Python 应用。画布部件则用于将结构化图形的 ...Sn选项描述1bd表示该边界的宽度,默认的宽度是 22bg它代表了画布的背景颜色3confin...简介
画布部件则用于将结构化图形的 Python 应用。它是用于绘制图表和曲线图的 Python 应用。
画布部件则用于将结构化图形的 Python 应用。它是用于绘制图表和曲线图的 Python 应用。使用画布的语法如下:
语法
w = canvas(parent,options)
可能选项的列表如下。
Sn 选项 描述 1 bd 表示该边界的宽度,默认的宽度是 2 2 bg 它代表了画布的背景颜色 3 confine 它被设置为使画布unscrollable以外的滚动区域 4 cursor 在画布上设置光标为箭头、圆、点等 5 height 它代表了画布在垂直方向上的大小 6 highlightcolor 设置当获得焦点时突出显示的颜色 7 relief 表示边框的类型,可能的值包括SUNKEN, RAISED, GROOVE, and RIDGE. 8 scrollregion 表示为包含画布区域的坐标的元组 9 width 设置画布的宽度 10 xscrollincrement 如果它被设置为正值,画布只放置到该值的倍数 11 xscrollcommand 如果画布是可滚动的,那么这个属性应该是水平滚动条的.set()方法 12 yscrollincrement 像xscrollincrement一样工作,但是控制垂直移动 13 yscrollcommand 如果画布是可滚动的,这个属性应该是垂直滚动条的.set()方法 实例
from tkinter import * top = Tk() top.geometry("200x200") #creating a simple canvas c = Canvas(top,bg = "pink",height = "200") c.pack() top.mainloop()
输出 :
实例 :创建圆弧
from tkinter import * top = Tk()top.geometry("200x200")#creating a simple canvasc = Canvas(top,bg = "pink",height = "200",width = 200) arc = c.create_arc((5,10,150,200),start = 0,extent = 150, fill= "white") c.pack() top.mainloop()
输出 :
END
时光,在物转星移中渐行渐远,春花一梦,流水无痕,没有在最想做的时候去做的事情,都是人生的遗憾。人生需要深思熟虑,也需要一时的冲动。
-
Python设置画布大小_Python绘图库Turtle详细分析
2020-10-21 21:40:27Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形... -
Python数据可视化Matplotlib——Figure画布背景设置
2020-12-05 15:53:09为了使实例图像显得不单调,我们先将绘图代码贴上来,此处代码对Figure背景设置无影响。默认背景下图像及代码import numpy as npimport matplotlib.pyplot as pltimport matplotlib.cm as cmimpor... -
python作图坐标轴与图像标签、画布背景的颜色设置
2020-11-29 22:24:41颜色设置,需要两处,画布及绘图区(绘图区就按Excel作图的来吧)画布的背景颜色设置fig = plt.figure(figsize=(15,12),facecolor='black',edgecolor='black')ax = fig.add_subplot()figsize参数表示画布大小,... -
Python设置画布大小_Python 之 Tkinter Canvas画布
2020-11-20 09:42:35语法格式:可能选项的列表如下选项描述bd表示该边界的宽度,默认的宽度是 2bg它代表了画布的背景颜色confine它被设置为使用画布unscrollable以外的滚动区域cursor在画布上设置光标为箭头、圆、点-等height代表了画布... -
如何在kivy python中动态更改画布颜色?
2020-12-04 16:12:30解决方案提供颜色的模式(rgb,...笔的颜色从红色开始变为白色,即按钮的背景色。在示例在主.py在from kivy.app import Appfrom kivy.uix.widget import Widgetfrom kivy.properties import ListProperty, NumericP... -
Python tkinter窗口背景/画布不改变颜色
2020-11-25 08:23:45我正在编写绘图程序,我正在尝试更改画布背景颜色,但由于某种原因它不起作用 . 没有错误消息,我不知道为什么它不起作用,因为我使用几乎相同的代码来更改线条颜色 .附:我是python的新手 .码:from tkinter import... -
Python实现转换图片背景颜色代码
2021-02-10 23:59:18在使用图片的时候有时候我们希望改变背景颜色,这样就只关注于图片本身。比如在连连看中就只有图片,而没有背景,其实我个人感觉有背景好看一点。两种方法,思路一致:法一:import cv2# 修改透明背景为白色def ... -
python详解:turtle库中的画布
2020-12-22 12:34:48在进入正文之前,我想先回顾上一篇博客中提到的一个知识点:有关画布中默认原点,不知道大家有没有留意过,即在IDLE中输入以下代码,就会得到如下图中的原点: >>> import turtle >>> turtle.dot(10,‘red’) >>> ... -
Python设置画布大小_我用Python的Seaborn库绘制17个超好看图表
2020-11-20 09:42:37点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤风朝露夜阴晴里,万户千门开闭时。Seaborn简介定义Seaborn是一个基于matplotlib且数据结构与pandas统一的... -
python如何设置画布开始位置_Python用Turtle绘图,原来如此简单
2020-10-21 21:40:24Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形... -
Python设置画布大小_Python第25课:海龟绘图_自定义函数的应用
2020-10-21 21:40:26设置画布大小2. 两个案例对比分析3. 复习自定义函数案例:餐布桌布设计课堂笔记作业布置1、完成视频中两款餐布桌布的图案设计。2、自己设计一款餐布桌布(可参考网上的图案)。3、多尝试用自定义函数去简化主程序。4、... -
matplotlib设置坐标轴颜色及画布背景色
2021-08-09 17:29:21坐标轴颜色 https://blog.csdn.net/weixin_34613450/article/details/81633129 https://blog.csdn.net/qq_40211493/article/details/103261392 修改背景色 ... -
零基础小白必看:教你在python画不同颜色的画布,简单好玩
2020-12-05 14:32:21文章目录摘要numpy的ndarray数据结构的索引与赋值创建空白画布初始化白色的画布初始化彩色的画布利用cv2的内置方法merge与split 利用numpy内置的索引综合实验-初始化背景「❤️ 感谢大家」摘要在这篇文章中将给大家... -
python如何设置画布开始位置_Python绘图篇——Turtle库详解(一)
2020-10-21 21:40:26交流学习python编程技术及行业动态,点击上方“蓝字”关注我们Python绘图篇——Turtle库详解(一)写在前面 ↓注:本教程基于64位windows系统(鼠标右键点击桌面“此电脑”图标——属性可查看电脑系统版本)、python3.x... -
python如何设置画布开始位置_python上手--玩转Turtle
2020-10-21 21:40:42Turtle模块绝对是吸引非专业代码开发者人员学习python入门的好工具,通过turtle几行代码的执行软件就会画出漂亮的图形,美观而且有成就感,这样一下子对python编程就产生了兴趣。这些漂亮的图形如三角形、五角星、... -
python如何设置画布开始位置_只要十分钟,Python绘图神器Turtle了解一下?
2020-10-21 21:40:41python的强大在于它有许多的强大的库,turtle就是其中之一。利用turtle,你可以进行交互式的绘画,作为一个艺术白痴,想要画一幅画可能很困难,但是利用python的turtle库,只需要几行代码你就能实现绘画。turtle是... -
Python Tkinter 画布(Canvas)
2021-02-04 07:10:25Python Tkinter 画布(Canvas)Python Tkinter 画布(Canvas)组件和 html5 中的画布一样,都是用来绘图的。您可以将图形,文本,小部件或框架放置在画布上。语法语法格式如下:w = Canvas ( master, option=value, ... ... -
Python Tkinter文本背景
2021-02-03 00:54:19我正在尝试为Tkinter文本小部件设置背景色-我正在尝试复制示例here和here,这两个示例似乎都表明我可以这样做:w.create_text(*textSet, text=i[3], font=("Helvetica", 16), bg="white"))但是当我尝试这个的时候,... -
教你在python中用不同的方式画不同颜色的画布!
2020-10-16 16:28:55摘要 在这篇文章中将给大家讲解如何分别用numpy的方法,与numpy与cv...在使用画图工具的时候, 第一件事情就是创建一个新的空白画布,我们可以指定画布的大小和颜色。 那我们如何使用opencv来创建一个空白的画布(值... -
Python IDLE背景设置与使用
2021-03-17 01:33:35都还是挺喜欢python自带的IDLE,但是白的代码背景色以及其它的代码色确实让人看着有点不舒服,所以当时也琢磨着能不能自己给它换换颜色,这个当然可以,废话不多说,直接切入主题:上面是我的,大家读完设置自己喜欢... -
Pyqt 设置 背景颜色和背景图片、 QPalette 调色板 与QPainter 画板区别 、 不规则图片
2020-12-16 10:34:41设置 背景颜色和背景图片首先设置autoFillBackground属性为真然后定义一个QPalette对象设置QPalette对象的背景属性(颜色或图片)最后设置QWidget对象的Palette实例:1 #-*- coding: utf-8 -*-2 importsys3 from PyQt4... -
有办法实现Python中turtle画图背景的渐变吗
2021-06-13 22:53:21用什么代码可以实现turtle画布背景颜色的渐变啊,找了好多都是画笔颜色的渐变,求大神指点。</p> -
python如何设置画布开始位置_Python绘图库Turtle详细分析
2020-10-21 21:40:24Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形...