У меня есть 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
Как избавиться от всплывающего меню, если оно открыто по ошибке в Linux [дубликат] ⇐ Linux
1714831380
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()
Подробнее здесь: [url]https://stackoverflow.com/questions/78425933/how-to-get-rid-of-a-popup-menu-if-opened-by-mistake-on-linux[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия