想要将"GdkPixbuf"转换为"GtkSelectionData"对象

Want to convert "GdkPixbuf" to "GtkSelectionData" object

本文关键字:GtkSelectionData 对象 转换 GdkPixbuf      更新时间:2023-10-16

我想将我的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

谢谢,吉米特

如果您查看文档,您会发现有一个函数

gtk_selection_data_set_pixbuf(GtkSelectionData*, GdkPixbuf*)

那么,问题是,您从哪里获得GtkSelectionData?答案是,通常,当掉落(或按下中键单击)时,GTK会进行回调,使您可以选择数据指针,并要求您用应传输的实际字节填充。

但是,GTK中的整个拖放/剪贴板东西非常复杂。Gnome Wiki上有几个教程,但是我建议阅读它们: - )

相关文章:
  • 没有找到相关文章