0
GTK 프로그래밍을 배우려고합니다. 나는 c로 간단한 프로그램을 썼다. 나는 gtk_label_set_selectable() 함수에 레이블에 대한 포인터를 전달하기 위해 노력하고 있어요,하지만 난이 경고를 얻을 :호환되지 않는 포인터 유형 인 'gtk_label_set_selectable'의 인수 1을 전달합니다.
../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);
^~~~~
: 나는 이클립스 CDT를이 컴파일 Whene
#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();
}
내가 콘솔에서이 경고를을
이 경고를 무시해야합니까? 그렇지 않다면 그걸 버리려면 어떻게해야합니까? 그리고 그렇다면 어떻게하면 식으로 사라질 수 있습니다.
'GtkLabel *'을 기대하며'GtkWidget *'을 전달하고 있습니다. 컴파일러가 실수로 실수를 저지른 것을 알려줍니다. 그것을 변경하여'GtkLabel *'을 전달하십시오. –
Tom은 그것을'GtkLabel * lable;이라고 선언하는 것을 의미합니다. –