Bonjour,
J'ai un programme assez complexe pour lequel j'ai une différence de présentation suivant l'OS. Je me suis donc inspiré d'un exemple pour reproduire le phénomène dans un code simplifié à l'extrême. Voici donc mes éléments.
J'utilise la fonction Gio.menu pour créer un menu. Mais dans un OS (Mint 20.2), l'item "Application" apparaît bien alors que sur l'autre OS (Manjaro), je n'ai qu'une petite icône qui ressemble à rien. Pire, si je change de thème (dark) l'icône n'est plus visible.
Voici le code de mon test
Résultat sur Mint
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # I use this exemple: https://developer.gnome.org/gnome-devel-demos/stable/gmenu.py.html.en import sys, gi try: gi.require_version('Gtk', '3.0') except: print('[E] wrong Gtk version') exit() from gi.repository import Gtk from gi.repository import Gio class MyWindow(Gtk.ApplicationWindow): def __init__(self, app): Gtk.Window.__init__(self, title="GMenu Example", application=app) class MyApplication(Gtk.Application): def __init__(self): Gtk.Application.__init__(self) def do_activate(self): win = MyWindow(self) win.show_all() def do_startup(self): # start the application Gtk.Application.do_startup(self) # create a menu menu = Gio.Menu() # append to the menu one option menu.append("Quit", "app.quit") # set the menu as menu of the application self.set_app_menu(menu) # option "quit" quit_action = Gio.SimpleAction.new("quit", None) quit_action.connect("activate", self.quit_cb) self.add_action(quit_action) # callback function for "quit" def quit_cb(self, action, parameter): self.quit() app = MyApplication() exit_status = app.run(sys.argv) sys.exit(exit_status)
Résultat sur Manjaro
Résultat sur Manjaro thème foncé (Dark)
On voit bien que la présentation est différente (ligne application présente ou pas) et que d'un côté on a du texte, de l'autre une icône.
Avez-vous une piste ?
Merci
.
Partager