Работа с буфером обмена в GTK+

Буфер обмена (clipboard)- это часть памяти, в которой хранится то, что мы копируем. Рассмотрим как работать с буфером обмена в GTK+.В GTK+ уже есть встроенный виджет для работы с буфером обмена:

GtkClipboard *clipboard;

Для работы с этим виджетом существуют десятки функций, но мы разберем простейший случай: у нас есть виджет для однострочного ввода текста (GtkEntry) и нам нужно выполнить три простых функции:

  • Вырезать,
  • Копировать,
  • Вставить.

Напишем простую программу:

В этой программе мы используем текстовый виджет (text), три кнопки для работы с буфером обмена (bcopy, bcut, bpaste) и кнопку выхода (bquit). Все эти виджеты разместим в вертикальном контейнере vbox.

Основные действия для работы с буфером обмена следующие:

  1. Создать виджет для буфера обмена: GtkClipboard *clipboard;
  2. Связать виджет с системным буфером обмена: clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
  3. Связать нажатие кнопки с вызовом соотвествующей функции. Например, для копирования текстового виджета в буфер обмена используется функция gtk_editable_copy_clipboard(text);

В этой программе для украшения на кнопках добавлены стандартные иконки GTK+

bcopy = gtk_button_new_from_stock (GTK_STOCK_COPY);

Полный список стандартных иконок можно посмотреть здесь.

Текст программы:

С другими виджетами общая схема работы остается такой же. Например, для виджета GtkText нужно использовать следующие функции:

  • gtk_text_buffer_copy_clipboard
  • gtk_text_buffer_cut_clipboard
  • gtk_text_buffer_paste_clipboard

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.