这个gtk警告的解决方案是什么?

时间:2010-05-02 11:02:31

标签: c gtk warnings

GtkWidget *textview;
...
textview = gtk_text_view_new ();
...
buffer = gtk_text_view_get_buffer (textview);

在我粘贴的最后一行,我收到了这个警告:

warning C4133: 'function' : incompatible types - from 'GtkWidget *' to 'GtkTextView *'

我该如何解决?

1 个答案:

答案 0 :(得分:2)

在GTK / GLib / GObject中,每个类都有一个类型转换宏(大写的类的名称,带有下划线),它还检查该对象是否为所请求的类。此外,GTK中的大多数构造函数返回GtkWidget *指针,因此您必须将它们强制转换。

其中任何一个都可行:

1

GtkWidget *textview;
textview = gtk_text_view_new();
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));

2

GtkTextView *textview;
textview = GTK_TEXT_VIEW(gtk_text_view_new());
buffer = gtk_text_view_get_buffer(textview);