Как избавиться от всплывающего меню, если оно открыто по ошибке в Linux [дубликат]Linux

Ответить
Anonymous
 Как избавиться от всплывающего меню, если оно открыто по ошибке в Linux [дубликат]

Сообщение Anonymous »

У меня есть Treeview со связанным контекстным меню, которое появляется, когда я щелкаю правой кнопкой мыши. Иногда я случайно щелкаю правой кнопкой мыши. Как избавиться от контекстного меню, не добавляя пункт для его закрытия?
import tkinter as tk
from tkinter import ttk

MEMBER_COLUMNS = (
('first_name', 'First name', 120),
)

class MainFrame():
def __init__(self):
self.root = tk.Tk()
self.tree = self._member_tree()
self.tree.grid(row=0, column=0)
self.context_menu = tk.Menu(self.root, tearoff=0)
self.context_menu.add_command(label='Delete', command=self._delete)
self.root.mainloop()

def _member_tree(self) -> ttk.Treeview:
tree = ttk.Treeview(self.root, selectmode='browse', height=5)
tree.grid(row=0, column=0, sticky=tk.NSEW)
tree.bind('', self._show_context_menu)

tree.column("#0", width=0)
col_list = tuple([col[0] for col in MEMBER_COLUMNS])
tree['columns'] = col_list
for col in MEMBER_COLUMNS:
(col_key, col_text, col_width) = (col[0], col[1], col[2])
tree.heading(col_key, text=col_text)
tree.column(col_key, width=col_width, anchor=tk.W)

for member in ['John', 'Fred']:
tree.insert('', 'end', values=member)
return tree

def _show_context_menu(self, event):
self.context_menu.post(event.x_root, event.y_root)

def _delete(self):
print('delete')

if __name__ == '__main__':
MainFrame()


Подробнее здесь: https://stackoverflow.com/questions/784 ... e-on-linux
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»