web-dev-qa-db-ja.com

PyGTK:デフォルトのWebブラウザーでリンクを開く

Gtk.Button( "http://www.google.com")を作成する方法はありますか。クリックすると、ラベルをURLとして使用してシステムのデフォルトWebブラウザが開きますか?

私にできることは...

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

上記のコードは、私がするのに必要なことをします。これはこれを行う正しい方法ですか?または、代わりに使用するGTK関数はありますか?

(免責事項:私は通常、私の質問により具体的です。これは本当に基本的なものであり、不可能なこともあり、ドキュメントを確認しました。ありがとうございます!)

3
Dillon Gilmore

2つのソリューションを1つに! :)

まず、このジョブ専用の特別なボタンウィジェット GtkLinkBut​​ton があります。通常のボタンと同じようにGtkLinkBut​​tonを作成します。 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をご覧ください。

4
Dylan McCall

_Gtk.LinkButton_を使用せずにデフォルトのブラウザーでURIを開く方法を知るために他の誰かがここに来た場合、答えは Gtk.show_uri_on_window() を使用しています。

_Gtk.show_uri_on_window(None, "http://www.google.com", Gdk.CURRENT_TIME)
_
0