下面是一个弹出菜单命令,我想发送事件数据通过。我想要它的x和y数据的事件,这样我就知道ttk样式的treeview(被用作表)的哪个单元格要操作。目前它称之为self.toggle_sort_bool“方法,但我希望它在结尾调用函数”self.sort\u孩子(event,curütu treeüu children),“但不要这样做,因为我需要知道在这里传递/接收事件。注:我知道发送是自动的,但接收不是。我是不是忽略了什么?在self.heading_popup_menu = tk.Menu(self.treeview, tearoff=0)
self.heading_popup_menu.add_command(label="Reverse Sort", command=self.toggle_sort_bool)
在这里,右键单击ttk样式的treeview,事件的旅程就开始了。在
^{pr2}$
事件的x_根和y_根被发送到tk_弹出窗口。我是否应该/可以超载发送整个事件?看起来根目录中事件的x和y被发送到告诉弹出窗口的位置…弹出窗口。在def pop_up_right_click(self, event):
try:
self.heading_popup_menu.tk_popup(event.x_root, event.y_root, 0)
finally:
self.heading_popup_menu.grab_release()
这是我想从菜单命令调用的函数。在def sort_children(self, event, cur_tree_children):
region = self.treeview.identify("region", event.x, event.y)
if region == "heading":
#get column number
col = self.treeview.identify_column(event.x)
col = int(re.sub('\D', '', col))
col_names = cur_tree_children.pop(0)
cur_tree_children.sort(reverse=self.reverse_sort_bool.get(), key=lambda tup: self.sort_disparate_types(tup[col-1])) #toggle reverse somehow
cur_tree_children.insert(0, col_names)
self.depopulate_tree()
self.populate_tree()
可以通过菜单发送事件吗?我很困惑,因为没有更好的术语,事件在通过右键单击弹出菜单调用函数时是多么的脱节。虽然这都是一个大型GUI类的一部分,但我不想使用类实例变量来传递目标单元数据,因为我认为这是一种混乱和糟糕的做法,因此应该尽可能避免。在
注:如果我有足够的声誉,我会做布丽亚诺克利的标签,然后贴在下面。在