python调用菜单响应事件_tkinter菜单能发送调用它们的事件吗?
下面是一個(gè)彈出菜單命令,我想發(fā)送事件數(shù)據(jù)通過。我想要它的x和y數(shù)據(jù)的事件,這樣我就知道ttk樣式的treeview(被用作表)的哪個(gè)單元格要操作。目前它稱之為self.toggle_sort_bool“方法,但我希望它在結(jié)尾調(diào)用函數(shù)”self.sort\u孩子(event,curütu treeüu children),“但不要這樣做,因?yàn)槲倚枰涝谶@里傳遞/接收事件。注:我知道發(fā)送是自動(dòng)的,但接收不是。我是不是忽略了什么?在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_根被發(fā)送到tk_彈出窗口。我是否應(yīng)該/可以超載發(fā)送整個(gè)事件?看起來根目錄中事件的x和y被發(fā)送到告訴彈出窗口的位置…彈出窗口。在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()
這是我想從菜單命令調(diào)用的函數(shù)。在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()
可以通過菜單發(fā)送事件嗎?我很困惑,因?yàn)闆]有更好的術(shù)語,事件在通過右鍵單擊彈出菜單調(diào)用函數(shù)時(shí)是多么的脫節(jié)。雖然這都是一個(gè)大型GUI類的一部分,但我不想使用類實(shí)例變量來傳遞目標(biāo)單元數(shù)據(jù),因?yàn)槲艺J(rèn)為這是一種混亂和糟糕的做法,因此應(yīng)該盡可能避免。在
注:如果我有足夠的聲譽(yù),我會(huì)做布麗亞諾克利的標(biāo)簽,然后貼在下面。在
總結(jié)
以上是生活随笔為你收集整理的python调用菜单响应事件_tkinter菜单能发送调用它们的事件吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PhoneGap/Cordova And
- 下一篇: Python——PrettyTable