Problèmes et questions concernant les éditions Gnome, Deepin et Budgie.
Répondre

Programmation Python - fonction Menu GTK sous Gnome

#1Messageil y a 2 ans

Bonjour,
j'ai adressé mon post sur un forum de développeurs mais j'ai bien l'impression que le problème vient de Gnome Manjaro.
En deux mots, mon programmes fonctionnait bien jusqu'à récemment. Mais j'ai maintenant un problème de présentation du menu.
J'ai pu reproduire le problème sur mon Manjaro up-to-date et sur un Manjaro tout neuf sur clé USB, les deux sous Gnome.
Par contre sous Manjaro xfce, sous Ubuntu 21.10 (Gnome 40.2), Pop!Os Gnome ou Mint Cinnamon pas de soucis.
Le détail est ici.
Une idée ?
PS: j'ai aussi posté sur Manjaro.org.

Programmation Python - fonction Menu GTK sous Gnome

#2Messageil y a 2 ans

Bonjour

En fait tu as la même chose. je pense que c'est simplement le nouveau design de gnome 40 : plus de barre de menu, elle est déplacée dans le menu système ce qui laisse plus d'espace pour l'utilisateur

je n'ai pas gnome mais il me semble que les applications gnome n'ont plus de barre de menu :saispas:

ps: mon kde est réglé pour faire exactement la même chose donc cela ne me choque pas du tout

EDIT:
dans ton code source tu utilises set_app_menu() et pas set_menu_bar() donc lorsque je lis la doc, ton rendu gnome 40 me parait très cohérent : tu désires ajouter un menu au menu "système" de l'application et pas une barre de menu
https://lazka.github.io/pgi-docs/Gtk-3. ... t_app_menu

Programmation Python - fonction Menu GTK sous Gnome

#3Messageil y a 2 ans

papajoke a écrit : il y a 2 ans ...............
je n'ai pas gnome mais il me semble que les applications gnome n'ont plus de barre de menu :saispas:
...............
Déjà merci pour ta réponse.
En effet, quand j'ai basculé (temporairement) en menu avec paramètres XML, j'ai utilisé la fonction set_menubar.
Mais l'information importante que tu cites est le fait que le nouveau Gnome a un nouveau design qui met L'élément menu (puisqu'il peut y en avoir qu'un seul) dans le menu système. Et, comme désigné dans ma deuxième image, il faut se faire à ce nouveau design ... qui n'est pas pris en compte dans mon thème spécifique foncé (Nordic).
Je pense que ta réponse est bonne mais je m'étonne que sous Ubuntu 21.10 (Daily build) qui intègre Gnome 40.2 le résultat soit à l'identique d'avant et ne reproduise pas l'erreur que j'ai mentionnée.
Je regarde en détail le contenu du thème dans la journée pour valider.
Si, à tout hasard tu avais un lien qui explique clairement l'intégration du menu GTK dans la barre système, je suis preneur.
Et si je peux confirmer, je mettrais à résolu.
Cordialement

Programmation Python - fonction Menu GTK sous Gnome

#4Messageil y a 2 ans

Bonsoir,
Donc, je confirme, Manjaro Gnome 40 n'a plus de barre de menu quand la fonction Gio.menu est utilisée, Une icône en haut à gauche remplace le texte "Application".
Et mon thème (Nordic issu de gnome-look.org) ne prend pas en compte cette nouvelle fonction/présentation alors que d'autres oui.

Donc c'était un problème de thème et de méconnaissance (la mienne) de cette nouvelle présentation qui est spécifique à Manjaro semble-t-il

Merci aux contributeurs
Je clos

Programmation Python - fonction Menu GTK sous Gnome

#5Messageil y a 2 ans

j'ai l'impression que tu débutes en python/gtk ?
ps: utiliser des espace plutôt que des tabulations ;)
Vangeles a écrit : il y a 2 ans cette nouvelle présentation qui est spécifique à Manjaro semble-t-il
Comme dit plus haut, ici c'est avant tout une erreur de code (ou mauvaise interprétation):

Tu ré-utilises in code exemple et dans l'exemple on peut voir que l'on ajoute un menu système : doc api gtk donnée plus haut est claire pour set_app_menu() comme la description de l'exemple (qui est ici uniquement pour illustrer les actions)

Image

Comme dit plus haut, si tu désires une barre de titre, c'est à toi , selon la doc gtk, d'utiliser la bonne méthode set_menubar()

menu = Gio.Menu()
# append to the menu one option
menu.append("Quit", "app.quit")
# ajoute menu comme barre d'application
self.set_menubar(menu)
# ou/et ajoute le menu comme menu systeme de l'application
self.set_app_menu(menu)
Existe de nombreux thème qui ne sont pas encore compatibles avec la dernière version de gnome c'est donc à toi de tester avec un thème valide sinon le résultat est aléatoire et il est possible qu'avec des anciennes api gtk il n'est pas possible de modifier le menu système?

ps: ke n'ai pas gnome ! je suppose que l'icone du menu système est l'icone de l'app (mais pas définie dans ton code) ou alors une icone définie dans le thème (personnalisable dans la config gnome ?)
Répondre