Ich versuche, GTK-Programmierung zu lernen. Ich schrieb ein einfaches Programm in c. Ich versuche, einen Zeiger auf ein Etikett auf die gtk_label_set_selectable() Funktion zu übergeben, aber ich habe diese Warnung:Übergabe Argument 1 von 'gtk_label_set_selectable' von inkompatiblen Zeigertyp
#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();
}
whene ich das CDT in Eclipse kompilieren bekomme ich diese Warnung in der Konsole:
../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);
^~~~~
Sollte ich diese Warnung ignorieren? Wenn nicht, was kann ich tun, damit es weggeht? Und wenn ja dann wie kann ich in Finsternis verschwinden lassen.
Es erwartet ein 'GtkLabel *', und Sie übergeben es ein 'GtkWidget *'. Der Compiler lässt Sie wissen, dass Sie einen Fehler gemacht haben. Ändern Sie es, um ein 'GtkLabel *' zu übergeben. –
Tom bedeutet, es als 'GtkLabel * lable;' zu deklarieren –