Как установить действие для пункта меню не из области приложения в GTK?Python

Программы на Python
Ответить
Anonymous
 Как установить действие для пункта меню не из области приложения в GTK?

Сообщение Anonymous »

Я использую GTK Blueprints для интерфейса

Код: Выделить всё

menu cover_action {
section {
item {
label: _("Set cover");
action: "card.change_cover";
}

item {
label: _("Remove cover");
action: "card.remove_cover";
}
}
}
Действия этого пункта меню должны быть определены в классе SongCard (который унаследован от Gtk.Box)

Код: Выделить всё

class SongCard(Gtk.Box):
def __init__(file):
super().__init__()
self.install_action("card.change_cover", None, self.metadata_change_cover)
self.install_action("card.remove_cover", None, self.metadata_remove_cover)
... some code ....

def metadata_change_cover(self, *_args) -> None:
dialog = Gtk.FileDialog(
default_filter=Gtk.FileFilter(mime_types=["image/png", "image/jpeg"])
)
dialog.open(shared.win, None, self.on_metadata_change_cover)

def metadata_remove_cover(self, *_args) -> None:
self._mde_new_cover_path = None
self._file._cover_updated = True
self.metadata_editor_cover_image.set_from_icon_name("note-placeholder")
Единственный известный мне способ установить действие меню — это задать имя действия для параметра действия в схеме. Но все эти действия должны иметь префикс, например. app или win.
Как использовать экземпляр класса SongCard в качестве области действия, чтобы установить префикс для этих действий? (self.install_action не работает)


Подробнее здесь: https://stackoverflow.com/questions/793 ... ope-in-gtk
Ответить

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

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

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

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

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