使用python3.7的
嗨。我正在尝试获取所选的treeview项,并希望在单击“左”菜单项后打印它。这是我的树视图列表。当我用停止进程命令右键单击菜单请求时。我正在尝试获取所选的项目并打印出来,但是它给了我错误。
AttributeError: 'str' object has no attribute 'x' in treeview item这里是我的树列表
这里是我的代码
self.popup_menu.add_command(label="stop process",
command=lambda:self.delete_selected("<Button-3>"))
self.tree.bind('<Button-3>', self.popup)
def delete_selected(self, event):
item = self.tree.identify('name','ID',event.x, event.y)
print(item)
def popup(self, event):
"""action in event of button 3 on tree view"""
try:
self.popup_menu.tk_popup(event.x_root, event.y_root, 0)
finally:
self.popup_menu.grab_release()发布于 2019-10-19 05:37:45
您正在将一个str传递给delete_selected,然后尝试读取它的x和y属性。不要将"<Button-3>"字符串传递给方法。相反,在lambda中接收event参数并将其传递给delete_selected。
self.popup_menu.add_command(label="stop process", command=lambda event:self.delete_selected(event))或者简单地删除lambda并直接传递函数:
self.popup_menu.add_command(label="stop process", command=self.delete_selected)发布于 2019-10-19 08:03:19
这对我来说很管用
self.popup_menu.add_command(label="stop process",
command=self.delete_selected)
self.tree.bind('<Button-3>', self.popup)
def delete_selected(self):
try:
curItem = self.tree.item(self.tree.focus())
item = self.tree.selection()[0]
self.kill_process(curItem['values'])
self.tree.delete(item)
except:
passhttps://stackoverflow.com/questions/58460780
复制相似问题