首页 > 解决方案 > 突出显示 tkinter 画布中单击的项目?

问题描述

大概的概念:

许多项目(大多数小图像)是在画布上创建的。用户可以单击任何项​​目并移动它。

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

是否有任何图像/项目选项来帮助应用这个想法。

标签: pythontkinterpython-imaging-librarytkinter-canvas

解决方案


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

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

您还需要global previously_clicked在其他方法中定义小部件。你可以在这里参考我的完整代码。它有这个功能


推荐阅读