Поэтому у меня есть основная структура меню:Прикрепление/Клонирование подменю более одного пункта меню
menu = gtk.menu()
item1 = gtk.MenuItem('Item 1')
item2 = gtk.MenuItem('Item 2')
menu.append(item1)
menu.append(item2)`
menu.show_all()
И у меня есть подменю:
submenu = gtk.menu()
subitem1 = gtk.MenuItem('Option 1')
subitem2 = gtk.MenuItem('Option 2')
submenu.append(subitem1)
submenu.append(subitem2)
submenu.show_all()
Теперь я хочу подключить этот же подменю структуру для обоих пунктов меню верхнего уровня. Моя первая мысль была, что просто добавляя .set_submenu(submenu)
как к item1
и item2
должны работать, но это дает мне ошибку:
Gtk-WARNING **: gtk_menu_attach_to_widget(): menu already attached to GtkMenuItem
и подменю отображаются только на последнем пункте он был присоединен.
На практике у меня есть намного больше, чем два элемента верхнего уровня, и мне нужно привязать одну и ту же структуру подменю к большинству из них. Таким образом, определение одной и той же структуры подменю для каждого элемента на самом деле не является вариантом. Каков правильный способ сделать это?
Это похоже на странную структуру. Зачем определять одно и то же подменю для нескольких элементов? Просто сделайте одно меню и решите элемент, которому он соответствует, посмотрев, на какой элемент пользователь щелкнул правой кнопкой мыши :) – joaquinlpereyra
@joaquinlpereyra Ух, без щелчка правой кнопкой мыши (просто зависание), но я получаю дрейф. Я сделал аналогичный материал в javascript, но я не знаю, как это сделать в python. Любые примеры? – Razor
Mhmmm, зависание кажется проблемой. Можете ли вы определить, где находится пользователь? Каким должен быть виджет ниже этого меню? – joaquinlpereyra