如何在 tkinter 的画布中反转颜色?

唯一的那个

我很好奇是否有办法直接在其中反转画布的颜色我已经看到允许使用图像(作为文件)的 PI​​L 模块,但我想应用在包含形状的画布内部仍然可见的更改。例如:

import tkinter
canvas=tkinter.Canvas()
canvas.pack()
canvas.create_rectangle(20,20,60,60,fill='blue', outline='red')

你能帮我吗,如何反转颜色?

无花果梁

有趣的问题。我一次只能更改一个画布项目的颜色,但我可以编写一个函数来完成所有或部分画布。例子:

import tkinter

root = tkinter.Tk()
root.geometry('300x200')
canvas = tkinter.Canvas()
canvas.pack(expand='yes', fill='both')
canvas.create_rectangle(20,20,60,60,fill='blue', outline='red')
canvas.create_line(100,100,160,160,fill='blue')

def invert_color(color):    # Invert color
    if type(color) == str: rgb = canvas.winfo_rgb(color)
    else: rgb = color
    rgb = (65535-rgb[0], 65535-rgb[1], 65535-rgb[2])
    tk_rgb = "#%04x%04x%04x" % (rgb)
    return tk_rgb

def invert_canvas(event):
    # Check or select canvas items:
    items = canvas.find_withtag('all')
    # Loop through canvas items
    for item in items:
        fill = canvas.itemcget(item, "fill")        # Get fill color
        if fill != '': fill = invert_color(fill)
        if canvas.type(item) in ['rectangle','arc']:
            outline = canvas.itemcget(item, "outline")  # Get outline color
            outline = invert_color(outline)
            canvas.itemconfig(item, fill=fill, outline=outline) # Set colors
        else:
            canvas.itemconfig(item, fill=fill) # Set colors

root.bind('<space>', invert_canvas)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Tkinter中打开SVG文件?

来自分类Dev

如何在Tkinter中反转导入图像的y轴?

来自分类Dev

如何在Tkinter中显示图例?

来自分类Dev

如何在Tkinter中禁用组合框?

来自分类Dev

如何在Tkinter中更新标签

来自分类Dev

如何在OpenGL中反转纹理颜色

来自分类Dev

如何在Tkinter中找出PhotoImage的大小?

来自分类Dev

如何在Tkinter中检测圆形的某些颜色?

来自分类Dev

如何在Tkinter画布上更新情节?

来自分类Dev

Python Tkinter,如何在Tkinter TreeView中获取某项的子项?

来自分类Dev

如何在Tkinter中输入int

来自分类Dev

如何在tkinter中设置scrollText边框?

来自分类Dev

如何在tkinter中输入矩阵?

来自分类Dev

如何在tkinter画布中为封闭的折线着色?

来自分类Dev

如何使Tkinter画布更新?

来自分类Dev

如何在Tkinter中覆盖图像

来自分类Dev

如何在Tkinter中更新,暂停和清除FigureCanvasTkAgg画布

来自分类Dev

如何在tkinter中停止重叠的画布图像

来自分类Dev

如何在Tkinter中的画布内移动文本

来自分类Dev

如何在Windows下的Tkinter中更改菜单的颜色?

来自分类Dev

如何在Tkinter中检测圆形的某些颜色?

来自分类Dev

如何在Tkinter中创建动态标签颜色?

来自分类Dev

如何在Tkinter画布上更新情节?

来自分类Dev

Python Tkinter如何在画布中显示文本

来自分类Dev

如何在 tkinter (python) 中更改框的背景颜色

来自分类Dev

在javascript中,如何反转画布的y轴?

来自分类Dev

如何在 tkinter 画布上创建文本并更改画布中的文本?

来自分类Dev

如何在 Tkinter 中更改 Figure 对象的背景颜色

来自分类Dev

如何关闭 tkinter 画布?

Related 相关文章

热门标签

归档