首页 > 解决方案 > GtkSelectionData 不完整类型 (GTK3)

问题描述

我正在尝试在 GTK 小部件中创建一个拖放区域。如果删除了文件,则在控制台中打印 URI。

#include <gtk/gtk.h>

void
onDragDataReceived(GtkWidget *wgt, GdkDragContext *context, int x, int y,
                    GtkSelectionData *seldata, guint info, guint time,
                    gpointer userdata)
{
    printf("Data: %s\n", (gchar*)seldata->data);
}

int main(int argc, char **argv)
{
    ...
    g_signal_connect(globals->treeview, "drag_data_received", G_CALLBACK(onDragDataReceived), NULL);
}

但是,在编译时,我收到以下错误:

../src/main.c: In function ‘onDragDataReceived’:
../src/main.c:45:41: error: dereferencing pointer to incomplete type ‘GtkSelectionData {aka struct _GtkSelectionData}’
 printf("Data: %s\n", (gchar*)seldata->data);

根据 gnome 开发者文档,不需要额外的包含。这是怎么回事?

标签: cgtkgtk3

解决方案


推荐阅读