내 머리를 긁적 거리고 있습니다. 왜 코드가 한 번만 쓰는 것과 달리 3 회 콜백을 실행하는 이유는 무엇입니까?GtkWidget 이벤트가 여러 번 발생했습니다.
#include <iostream>
#include <gtk/gtk.h>
using namespace std;
void on_draw(){
cout << "drawing"<<endl;
}
int main(int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *drgArea;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
drgArea = gtk_drawing_area_new();
// gtk_widget_set_redraw_on_allocate(drgArea, -1);
gtk_container_add(GTK_CONTAINER(window), drgArea);
gtk_widget_show_all(window);
g_signal_connect(drgArea, "expose-event",
G_CALLBACK(on_draw), NULL);
gtk_main();
return 0;
}
gtk + -2.xx가 맞나요? 주요 버전 간의 주요 차이점이있는 긴 버전 기록이있는 라이브러리와 관련된 질문을 할 때 항상 추가해야합니다. – drahnr
나는 gtk + -2.24를 사용하고있다. –
내 PC에 또 다른 gtk + -3xx가 있는데 내 코드를 바꿨을 때 콜백 카운트가 4로 뛰었다! –