【问题标题】:how to programmatically select text (primary selection) in a gtk text buffer如何以编程方式在 gtk 文本缓冲区中选择文本(主要选择)
【发布时间】:2012-05-21 08:09:53
【问题描述】:

我正在使用 gtk+-2.0 和 gtksourceview-2.0 编写文本编辑器。我无法找到一种以编程方式选择文本块并将其添加到操作系统(linux)主选择剪贴板的方法。就像我用鼠标突出显示一个文本块或按住 shift 键并用箭头键选择文本一样。

我在devhelp下找到了“gtk_text_buffer_get_selection_bound()”语句:

缓冲区中当前选定的文本是“selection_bound”和“insert”标记之间的区域。

编辑: gtk_text_buffer_select_range(),设置这两个标记的位置。

以下代码块,使用文本迭代器开始和结束指定的区域,复制到主选择剪贴板(根据需要):

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

感谢您的想法!!!

【问题讨论】:

    标签: c gtk gtksourceview


    【解决方案1】:

    也许你应该试试gtk_editable_copy_clipboard ()。该文档说“将当前选定内容的内容复制到可编辑内容中并将其放在剪贴板上”。然后使用 gtk_editable_paste_clipboard () 粘贴,它“将剪贴板的内容粘贴到可编辑光标的当前位置。”

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多