Каково решение для этого предупреждения GTK? - PullRequest
0 голосов
/ 02 мая 2010
GtkWidget *textview;
...
textview = gtk_text_view_new ();
...
buffer = gtk_text_view_get_buffer (textview);

На последней вставленной мной строке я получил это предупреждение:

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

Как я могу это исправить?

1 Ответ

2 голосов
/ 02 мая 2010

В GTK / GLib / GObject у каждого класса есть макрос typecast (имя класса в верхнем регистре с подчеркиванием), который также проверяет, принадлежит ли объект запрошенному классу. Кроме того, большинство конструкторов в 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...