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)