Хотите конвертировать & quot; GdkPixbuf & quot; на & quot; GtkSelectionData & quot; объект

Я хочу преобразовать свой pixbuf в «GtkSelectionData», так как я могу преобразовать его в c ++?
Ниже приведен мой пример кода.

clipboard   =   gtk_clipboard_get_for_display (gdk_display_get_default (),
GDK_SELECTION_CLIPBOARD);
GdkPixbuf *pixbuf;
pixbuf = gtk_clipboard_wait_for_image ( clipboard );

if ( pixbuf != NULL )
{
int width, height;
width  = gdk_pixbuf_get_width (pixbuf);
height = gdk_pixbuf_get_height (pixbuf);
//printf("width : %d", width);
GtkSelectionData *selectionData;
gtk_selection_data_set_pixbuf(selectionData,pixbuf);
g_object_unref (pixbuf);

}

Error: cannot convert ‘GdkPixbuf* {aka _GdkPixbuf*}’ to ‘GtkSelectionData* {aka _GtkSelectionData*}’ in initialization

Спасибо, Джимит

1

Решение

Если вы посмотрите на документация, вы увидите, что есть функция

gtk_selection_data_set_pixbuf(GtkSelectionData*, GdkPixbuf*)

который делает именно то, что вы хотите.

Вопрос в том, где взять GtkSelectionData от? Ответ заключается в том, что обычно, когда происходит отбрасывание (или нажатие средней кнопки мыши), GTK запускает обратный вызов, дающий вам указатель данных выбора и запрашивающий заполнить его фактическими байтами, которые должны быть переданы.

Но весь материал перетаскивания / буфера обмена ужасно сложен в GTK. В вики Gnome есть пара учебных пособий, которые помогают, но я бы посоветовал прочитать их 🙂

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector