用tkinter绘制一张表格,其中的单元格需要在单击时着色,并通过代码检索选择

时间:2019-04-17 11:01:02

标签: python tkinter

我是tkiinter的新手,我没有设法在互联网上找到解决问题的方法。

首先,我需要绘制一种具有三角形的表格,该表格类似于此图片(https://www.tilelook.com/system/tile_picture/resource/4973584/d3d_default_RE04MC017.png)。

然后,用户可以在某处(从列表或类似名称中)选择一种颜色,并通过单击它来更改三角形的颜色。最重要的是,我需要在代码中检索这些信息(对于每个琐事,我都需要知道用户选择哪种颜色)。

编辑: 我仍然没有编写任何代码,但是我知道如何使用Canvas绘制表格,或多或少如何处理着色部分。对我而言,最困难的部分是如何检索代码中的信息,我认为这就像将表的每个元素都视为一个独立的对象或类似的东西一样,但是我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

我不会为您提供完整的解决方案,但您可能会发现以下有用的起点

import tkinter as tk
from random import choice

def getRandomColor():
    return choice(['red','blue','green','yellow','white','goldenrod'])

def click(event):
    print(vars(event))
    item = event.widget.find_withtag('current')
    event.widget.itemconfig(item,fill=getRandomColor())

root = tk.Tk()
root.grid()

c = tk.Canvas(root,width=300,height=300,bg='black')
c.grid()
c.create_polygon(0,0,100,0,50,100,fill='blue',tag='tri_1')
c.create_polygon(100,0,50,100,150,100,fill='yellow',tag='tri_2')
c.bind('<Button-1>',click)

root.mainloop()

这将创建两个三角形。如果单击三角形,它将变为随机颜色(从一小部分颜色)。 这会给你一些想法 一种。在tkinter画布上绘制多边形 b。将功能绑定到点击 C。更改画布项目的属性

希望这对您有帮助