私はGTKプログラミングを学ぼうとしています。私はcで簡単なプログラムを書いた。私はgtk_label_set_selectable()関数にラベルへのポインタを渡すようにしようとしていますが、私はこの警告を得る:互換性のないポインタ型の 'gtk_label_set_selectable'の引数1を渡します。
#include <gtk/gtk.h>
#include <stdlib.h>
long i = 1;
void showadd(short u,GtkWidget *l)
{
char * s;
s = (char*)malloc(20);
sprintf(s,"%ld",++i);
gtk_label_set_text(GTK_LABEL(l),s);
}
int main (int argc, char *argv[])
{
gtk_init(&argc,&argv);
GtkWidget * win,* lable, * addButton,* SubstractButton,*box;
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
addButton = gtk_button_new_with_label("+");
lable = gtk_label_new("1");
box = gtk_vbox_new(0,0);
g_signal_connect(win,"delete-event",G_CALLBACK(exit),NULL);
g_signal_connect(addButton,"clicked",G_CALLBACK(showadd),(gpointer)lable);
gtk_label_set_selectable(lable,1); //getting warring here
gtk_container_add(GTK_CONTAINER(win),box);
gtk_box_pack_start(GTK_BOX(box),lable,1,0,0);
gtk_box_pack_start(GTK_BOX(box),addButton,1,0,0);
gtk_widget_show_all(win);
gtk_main();
}
私は日食CDTでこれをコンパイルWhene私はコンソールでこの警告を得る:
../src/Calculator.c:35:28: warning: passing argument 1 of ‘gtk_label_set_selectable’ from incompatible pointer type [-Wincompatible-pointer-types]
gtk_label_set_selectable(lable,1);
^~~~~
を
この警告は無視する必要がありますか?そうでない場合は、私はそれを遠ざけるために何ができますか?そして、はいの場合、私はどのように日食で消えることができます。
これは 'GtkLabel *'を想定しており、 'GtkWidget *'を渡しています。コンパイラはあなたが間違いをしたことを知らせています。これを変更して 'GtkLabel *'を渡します。 –
Tomはそれを 'GtkLabel * lable;'として宣言します。 –