python – 单击时如何获取形状的标记
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 单击时如何获取形状的标记,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1763字,纯文字阅读大概需要3分钟。
内容图文
![python – 单击时如何获取形状的标记](/upload/InfoBanner/zyjiaocheng/752/9eca461d0455405fa94bb6ad5db24738.jpg)
假设我在Tkinter应用程序中创建了一个画布.
在画布中,我绘制了几个矩形.
我本质上想要的是知道用户点击了哪个矩形,这是我的主要关注点,但这是我尝试过的,我认为可能是解决方案.
这是我的布局:
for x in range(1,6):
for y in range(1,7):
tableNumber = y + 6*(x-1)
w.create_rectangle((table.xSeparation + table.width) * y - table.width,
(table.ySeparation + table.height) * x - table.height,
(table.xSeparation + table.width)*y,
(table.ySeparation + table.height) * x,
fill="brown", tags="table" + str(tableNumber))
w.tag_bind("table" + str(tableNumber), '<Button-1>', do)
所以这只是在行和列布局中创建矩形.
每个矩形都有一个特定的标签,形式为table1,table2到table30.
当我单击矩形时,执行do函数.
让我们说do就像这样:
def do(event):
print "click"
对于矩形中的每次单击,我都不会在控制台中获得“单击”.
我希望能够获得点击矩形的标记,以便能够执行以下操作:
def do(event):
print str(theTagOfTheClickedRectangle)
所以我查看了我可以调用哪些事件:
>小部件
> x,y
> x_root,y_root
> char
> keysym
>键码
> num
>宽度,高度
>类型
似乎没有人指出我点击了什么矩形.
我想在这里为do函数添加更多参数:
w.tag_bind("table" + str(tableNumber), '<Button-1>', do(event, tag))
但这似乎没有用,但也许我做得不对:
do(event, tag): #this doesn't work at all!!
print event.x
print tag
我希望这个问题很明确,如果我得到标签的方式与我能得到事件的’x’和’y’相同,那将非常舒服.
我现在能想到的唯一实际解决方案是计算’event.x’和’event.y’的数学,并根据点击的坐标计算用户点击的矩形,这似乎过于复杂我正在尝试做什么,虽然我之前已经做过,但它显然有效.
我希望问题很明确,其他明智的请求任何澄清.
请注意,我不依赖于任何此代码,而是,我正在寻找这个问题的解决方案,即使没有使用标签,或其他类型的小部件或其他更容易的方法,最有效的将工作.
解决方法:
你可以使用这样的东西来引用被点击的对象:
event.widget.find_withtag("current")
标签“current”是特殊的,代表鼠标下方最顶层的对象.
内容总结
以上是互联网集市为您收集整理的python – 单击时如何获取形状的标记全部内容,希望文章能够帮你解决python – 单击时如何获取形状的标记所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。