突出显示Tkinter画布中单击的项目?

时间:2019-06-13 12:41:09

标签: python tkinter python-imaging-library tkinter-canvas

总体思路:

在画布上创建了许多项目(多数为小图像)。用户可以单击任何项​​目并将其移动。

我需要用户通过在该项目周围显示(绘制)边框/更改亮度/任何方法来知道最后单击的项目。

是否有任何图片/项目选项可帮助应用该想法。

2 个答案:

答案 0 :(得分:2)

您可以通过为最后单击的窗口小部件编写一个简单的修改外观方法来实现。这是示例代码。下面我们执行两个动作。首先将最后一个小部件的外观更改为正常,然后将最后单击的小部件的外观更改为突出显示。

TextView

您还需要在其他方法中定义def modifyAppearance(self, widget): global previously_clicked if 'previously_clicked' in globals(): # rolling back the appearance of previous widget to normal previously_clicked['bg'] = widget['bg'] previously_clicked['activebackground'] = widget['activebackground'] previously_clicked['relief'] = widget['relief'] # changing the appearance of the last clicked widget widget['bg'] = 'green' widget['activebackground'] = '#33B5E5' widget['relief'] = 'sunken' previously_clicked = widget ,您将在其中定义小部件。您可以参考我的full code here。它具有此功能

答案 1 :(得分:0)

例如,这是您的按钮-

B1 =按钮(root,文本=“ Click me”,命令= clickme)

我们可以在此处传递更多参数,例如-

highlightcolor = 按钮具有焦点时用于突出显示边框的颜色。默认值是系统特定的。 (highlightColor / HighlightColor)

highlightthickness = 高亮边框的宽度。默认值是特定于系统的(通常为一或两个像素)。 (highlightThickness / HighlightThickness)

...

OR

...

每当单击该按钮时,您都必须指定要在功能中执行的某些操作。您可以做的是,可以告诉该函数通过上述参数稍微增加边框的粗细。 :)