2015-09-17 2 views
0

Я создал строку меню, используя привязки Python для GTK3 и Gio.Action вместо Gtk.Action, аналогично тому, как описано в this answer.Настройка чувствительности пункта меню, связанного с Gio.Action

Но теперь у меня возникли проблемы с попыткой динамически установить чувствительность пункта меню (независимо от того, выделен ли он). Gtk.Action предлагает простой метод set_sensitive, но я не могу найти чистый способ получить Gtk.Action, связанный с моим Gio.Action. Gtk.Application только имеет методы для прямого получения Gio.MenuModel, а не Gtk.Menu, например.

ответ

1

Gio.SimpleAction.set_enabled()

action = Gio.SimpleAction.new('my-action', None) 
action.set_enabled(False) # This makes it insensitive 
+0

Спасибо за ваш ответ! Я тоже видел этот метод, но был отложен замечанием «Это должно быть вызвано только разработчиком действия. Пользователи этого действия не должны пытаться изменить свой флаг enabled». - Любые комментарии по этому поводу? – pmos

+1

Говорят, что вы не можете отключать действия для других библиотек, поскольку это технически возможно. – TingPing

+0

Ах, я вижу. Я неправильно понял это, думая, что это метод, который должен был быть приватным, но не по какой-то технической причине (т. Е. Я думал, что «разработчик» = разработчики GTK). Теперь это имеет смысл, спасибо! – pmos

Смежные вопросы