使用Tk在Python中单击更改矩形颜色

K.肖尔斯

我正在尝试在画布上创建一个Tk矩形,以在单击时更改其颜色。现在,单击矩形时没有发生颜色变化。我需要做些什么不同的事情?

顺便说一下,这是在Python3.5中。

from tkinter import *


def set_color(id):
    global alive, colors
    alive = not alive
    col = colors[alive]
    canvas.itemconfigure(id, fill=col)

root = Tk()
canvas = Canvas(root)
canvas.grid(column=1, row=1, sticky=(N, S, E, W))

alive = False
colors = {True: "green", False:  "red"}

id = canvas.create_rectangle((1, 1, 60, 60), fill="red")
canvas.tag_bind(id, "<ButtonPress-1>", set_color)


root.mainloop()
用户4171906

将其包装在一个类中,并根据需要创建尽可能多的实例。http://www.freenetpages.co.uk/hp/alan.gauld/tutclass.htm

class OneSquare():
    def __init__(self, can, start_x, start_y, size):
        self.can=can
        self.id = self.can.create_rectangle((start_x, start_y,
                  start_x+size, start_y+size), fill="red")
        self.can.tag_bind(self.id, "<ButtonPress-1>", self.set_color)

        self.color_change=True

    def set_color(self, event=None):
        self.color_change = not self.color_change
        color="red"
        if not self.color_change:
            color="green"
        self.can.itemconfigure(self.id, fill=color)

root = Tk()
canvas = Canvas(root)
canvas.grid(column=1, row=1, sticky=(N, S, E, W))

OS1=OneSquare(canvas, 1, 1, 60)
OS2=OneSquare(canvas, 90, 1, 30)
OS3=OneSquare(canvas, 1, 90, 90)

Button(root, text="Exit", bg="orange",
       command=root.quit).grid(row=2)

root.mainloop()

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Tk在Python中单击更改矩形颜色

来自分类Dev

ColorAnimation更改矩形中的颜色

来自分类Dev

单击“颜色”按钮时如何更改矩形的颜色

来自分类Dev

在Javafx中动态更改矩形的颜色

来自分类Dev

使用 JS 更改 svg 矩形颜色

来自分类Dev

需要使用 win32com 在 MS Word 中更改矩形的颜色

来自分类Dev

如何在Winforms网格中的矩形中更改背景颜色?

来自分类Dev

单击时在JQuery中更改SVG颜色

来自分类Dev

在reccyclerview中更改单击的项目的颜色

来自分类Dev

如何在xml布局中更改矩形颜色

来自分类Dev

尝试在OpenCV中更改矩形的默认颜色时出错

来自分类Dev

使用jQuery更改单击的表行的颜色

来自分类Dev

使用jQuery单击更改背景颜色

来自分类Dev

使用queryselector单击更改背景颜色

来自分类Dev

如何在jquery中单击时更改文本和矩形?

来自分类Dev

矩形JavaFx动态更改颜色

来自分类Dev

SVG悬停矩形更改颜色

来自分类Dev

更改已经绘制的矩形的颜色?

来自分类Dev

使用graphics.py查找Python中矩形框的颜色

来自分类Dev

使用 QGraphicsRectItem 的颜色矩形

来自分类Dev

单击时使用多种颜色更改单选按钮的颜色

来自分类Dev

单击时使用多种颜色更改单选按钮的颜色

来自分类Dev

单击时使ng-repeat中的一个按钮更改颜色,并非全部使用Angularjs

来自分类Dev

jQuery单击更改颜色

来自分类Dev

单击更改弧线的颜色

来自分类Dev

单击更改文字颜色

来自分类Dev

单击后更改颜色

来自分类Dev

单击按钮后动画QML矩形的颜色

来自分类Dev

使用 OpenCV Python 更改视频中的单一颜色