web-dev-qa-db-fra.com

PyGTK: ouverture de liens dans le navigateur Web par défaut

Existe-t-il un moyen de créer un Gtk.Button ("http://www.google.com"), lorsque vous cliquerez sur le navigateur Web par défaut du système en utilisant l'étiquette comme URL?

Ce que je pouvais faire, c'est ...

import os
button = Gtk.Button(label="http://www.google.com")
label = button.get_text()
os.system("sensible-browser " + label)

Le code ci-dessus fait ce dont j'ai besoin. Est-ce la bonne façon de procéder? Ou existe-t-il une fonction GTK que je devrais utiliser à la place?

(Avertissement: je suis généralement plus précis avec mes questions, j'ai l'impression que c'est vraiment basique et peut-être même pas possible et j'ai vérifié les documents. Merci!)

3
Dillon Gilmore

Deux solutions en une! :)

Tout d'abord, il existe un widget de bouton spécial uniquement pour ce travail: GtkLinkButton . Vous créez un GtkLinkButton comme un bouton normal. Voici un exemple de programme simple écrit avec Python et PyGObject. PyGTK devrait être assez similaire:

from gi.repository import Gtk
window = Gtk.Window()
button = Gtk.LinkButton("http://www.google.com", label="google.com")
window.add(button)
window.show_all()
Gtk.main()

Comme alternative, vous pouvez appeler directement la fonction gtk_show_uri .

Si vous avez besoin de lancements d'applications plus sophistiqués, jetez un œil à Gio.

4
Dylan McCall

Si quelqu'un d'autre vient ici pour savoir comment ouvrir un URI dans le navigateur par défaut sans utiliser un Gtk.LinkButton, La réponse utilise Gtk.show_uri_on_window() :

Gtk.show_uri_on_window(None, "http://www.google.com", Gdk.CURRENT_TIME)
0
Roberto Leinardi