Hello tout le monde,
Je suis en train de programmer un petit widget de bureau en python.
Il s'agit d'un petit widget en Webview qui affiche simplement une image random parmis une liste de site proposant des images du jour.
Tout cela est géré en javascript qui va reload l'image affichée dans le html.
Mon soucis: Par défaut, la webview va s'adapter à la taille du contenu, mais dans un seul sens, je m'explique:
Si la première image affichée est petite (disons 140x140), et qu'on passe à une image plus grande(480x480), pas de soucis, la fenêtre s’agrandit automatiquement en 480x480.
Cependant dans le cas inverse ça ne fonctionne pas:
Si on passe d'une grande image (480x480) à une petite (140x140), le widget ne se resize pas, l'image affichée est petite (140x140) mais dans une fenêtre immense (480x480) ayant forcement une couleur de background (pas de transparent possible) :/
voici mon code:
J'ai simplifié au maximum, donc c'est normal s'il y a quelques incohérences (quelques fonctionnalités et déclencheurs manquants).
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 from gi.repository import WebKit, Gtk, Gdk, Gio, GLib import signal, os class MainWin(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, skip_pager_hint=True, skip_taskbar_hint=True) self.set_wmclass("sildesktopwidget","sildesktopwidget") self.set_type_hint(Gdk.WindowTypeHint.DOCK) self.set_size_request(10,10) self.view = WebKit.WebView() self.view.props.settings.props.enable_default_context_menu = True self.view.load_uri("file:///path/to/my/file.html") box = Gtk.VBox(homogeneous=False, spacing=0) self.add(box) box.pack_start(self.view, expand=True, fill=True, padding=0) self.set_decorated(False) self.connect("destroy", lambda q: Gtk.main_quit()) self.set_decorated(True) def changeSignal(self): self.set_size_request(10,10) self.resize(10,10) def show_window(self): self.show_all() self.move(0, 0) self.set_size_request(10,10) self.resize(10,10) if __name__ == '__main__': MainWin() signal.signal(signal.SIGINT, signal.SIG_DFL) Gtk.main()
ce que j'aimerai c'est resizer la fênetre de la webview dans la fonction changeSignal() qui se déclenche (correctement) lors du changement d'image.
Comme vous pouvez le voir j'ai déjà essayé avec self.resize() et set_size_request() mais sans résultat :/
le html contient juste une image et le script permettant de changer d'image au clic ou après X minutes
Merci beaucoup =)
Partager