2

私はgtk+-2.0とgtksourceview-2.0を使用してテキストエディタを書いています。プログラムでテキストのブロックを選択し、それをOS(Linux)のプライマリ選択クリップボードに追加する方法を見つけるのに問題があります。マウスでテキストのブロックを強調表示するか、Shiftキーを押しながら矢印キーでテキストを選択した場合と同じように、

devhelpの「gtk_text_buffer_get_selection_bound()」の下に次のステートメントがあります。

バッファ内で現在選択されているテキストは、「selection_bound」マークと「insert」マークの間の領域です。

編集: gtk_text_buffer_select_range()、これら2つのマークの位置を設定します。

次のコードブロックは、テキストiters start&endを使用して指定された領域を、(必要に応じて)プライマリ選択クリップボードにコピーします。

            gtk_text_buffer_select_range (tbuffer, &start, &end); 
            GtkClipboard *cb = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
            gtk_text_buffer_copy_clipboard (tbuffer,cb);

アイデアをありがとう!!!

4

1 に答える 1

1

おそらく、gtk_editable_copy_clipboard()を試してみてください。ドキュメントには、「現在選択されているコンテンツのコンテンツを編集可能にコピーしてクリップボードに置く」と記載されています。次に、gtk_editable_paste_clipboard()を使用して貼り付けます。これにより、「クリップボードの内容が編集可能なカーソルの現在の位置に貼り付けられます」。

于 2012-05-20T22:43:52.293 に答える