GtkWidget *textview;
...
textview = gtk_text_view_new ();
...
buffer = gtk_text_view_get_buffer (textview);
在我粘贴的最后一行,我收到了这个警告:
warning C4133: 'function' : incompatible types - from 'GtkWidget *' to 'GtkTextView *'
我该如何解决?
答案 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);