1

ruby-gnome2に基づくGUI プロジェクト ( http://smartdict.net ) に取り組んでいます。Gtk::TextBuffer要素に Web リンクを挿入したいと考えています。どうやってやるの?

これは Ruby プロジェクトですが、C または Python でのソリューションも同様に役立ちます。ありがとう。

4

2 に答える 2

3

これは私がそれをした方法です:

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を使用することをお勧めします:

http://visualruby.net

于 2012-06-18T05:41:07.673 に答える
2

私はこれを自分で行ったことはありませんが、次の 2 つの方法で実行できると思います。

  1. テキスト タグを使用して自分でテキスト (下線付きの青) のスタイルを設定し、自分で URL の起動を処理します。

  2. a を使用gtk_text_buffer_insert_child_anchorしてバッファ内のどこにリンクを挿入するかを指定し、次にgtk_text_view_add_child_at_anchoraGtkLinkButtonをテキスト ビューに挿入します。

于 2012-06-11T14:25:21.103 に答える