python - 突出显示 tkinter 画布中单击的项目?
问题描述
大概的概念:
许多项目(大多数小图像)是在画布上创建的。用户可以单击任何项目并移动它。
我需要用户通过在该项目周围显示(绘制)边框/更改亮度/任何方法来了解上次单击的项目。
是否有任何图像/项目选项来帮助应用这个想法。
解决方案
您可以通过为最后单击的小部件编写一个简单的修改外观方法来实现这一点。这是示例代码。下面我们执行两个动作。首先将最后一个小部件的外观更改为正常,然后将最后点击的小部件的外观更改为突出显示它。
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
在其他方法中定义小部件。你可以在这里参考我的完整代码。它有这个功能
推荐阅读
- ios - 如何从模型类字典中将值存储在 Array/NSMutableArray 中?
- swift - 如何自定义列名?
- javascript - 使用 forEach 连接数组
- visual-studio - Nuget 包 - 属性 - 未设置路径
- django - 如何将上传的图像转换为base64并解码回来,并将文件保存为PNG?
- java - 如何在JPA中映射没有外键的一对一关系?
- sql - 一般来说,我应该在实际“UPDATE”之前“SELECT ... FOR UPDATE”吗?
- swift - 将应用推送到 AppStore 时应用商店连接操作错误
- sql - 从 JSON PostgreSQL 中提取
- dialogflow-es - 对话流可以自动估计位置距离