ruby-gnome2に基づくGUI プロジェクト ( http://smartdict.net ) に取り組んでいます。Gtk::TextBuffer要素に Web リンクを挿入したいと考えています。どうやってやるの?
これは Ruby プロジェクトですが、C または Python でのソリューションも同様に役立ちます。ありがとう。
ruby-gnome2に基づくGUI プロジェクト ( http://smartdict.net ) に取り組んでいます。Gtk::TextBuffer要素に Web リンクを挿入したいと考えています。どうやってやるの?
これは Ruby プロジェクトですが、C または Python でのソリューションも同様に役立ちます。ありがとう。
これは私がそれをした方法です:
Micahが言ったように、テキストをリンクのように見せるためのタグを作成します(青と下線付き)。次に、シグナルをTextViewに接続します。これにより、ユーザーがシグナルをクリックすると、メソッドが呼び出されてURLが開きます。配列内のリンクを追跡するか、カーソル位置に基づいてリンクを解析することにより、開くリンクをメソッドが認識する方法を考案する必要があります。その部分はあなた次第です。
class myTextView < Gtk::TextView
def initialize
signal_connect("button_release_event") { open_url() }
buffer.create_tag("blue", { "foreground" => "#0000FF", "underline" => Pango::UNDERLINE_SINGLE })
start_iter, end_iter = get_line_iters()
buffer.apply_tag("blue", start_iter, end_iter)
end
def open_url()
# open link here
end
end
これは標準のGtkソリューションです。visualrubyを使用することをお勧めします:
私はこれを自分で行ったことはありませんが、次の 2 つの方法で実行できると思います。
テキスト タグを使用して自分でテキスト (下線付きの青) のスタイルを設定し、自分で URL の起動を処理します。
a を使用gtk_text_buffer_insert_child_anchor
してバッファ内のどこにリンクを挿入するかを指定し、次にgtk_text_view_add_child_at_anchor
aGtkLinkButton
をテキスト ビューに挿入します。