PyGTK: открытие ссылок в браузере по умолчанию

Есть ли способ создать Gtk.Button("http://www.google.com"), при нажатии на который откроется системный веб-браузер по умолчанию, использующий метку в качестве URL-адреса?

Что я мог сделать, это...

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

Приведенный выше код делает то, что мне нужно. Это правильный способ сделать это? Или есть функция GTK, которую я должен использовать вместо этого?

(Отказ от ответственности: я обычно более конкретен с моими вопросами, я чувствую, что это действительно просто и может даже не быть возможным, и я проверил документы. Спасибо!)

2 ответа

Решение

Два решения в одном!:)

Во-первых, для этой работы есть специальный виджет кнопки: GtkLinkButton. Вы создаете GtkLinkButton, как обычную кнопку. Вот простой пример программы, написанной на Python и PyGObject. PyGTK должен выглядеть примерно так:

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()

В качестве альтернативы вы можете напрямую вызвать функцию gtk_show_uri.

Если вам нужны более сложные вещи для запуска приложений, взгляните на Gio.

Если кто-то пришел сюда, чтобы узнать, как открыть URI в браузере по умолчанию, не используя Gtk.LinkButton ответ использует Gtk.show_uri_on_window():

Gtk.show_uri_on_window(None, "http://www.google.com", Gdk.CURRENT_TIME)
Другие вопросы по тегам