Gtk 3을 그래픽 라이브러리로 사용하는 코드 :: block을 사용하여 ac 응용 프로그램을 만들려고합니다. 이 버전의 gtk는 gtk 2와 약간 다른 튜토리얼입니다. 또는 exampes 온라인으로 avaiable 있습니다. 나는 GifkPixmap이라는 유형을 사용하여 Windows에 gif를로드 할 수 있도록 허용하고 싶습니다. 검색 한 후에 유형이 사용되지 않으며 gtk 새 버전 (3)에서 제거되었습니다. 공식 문서 (gtk2에서 gtk3로 마이그레이션)에서 GdkPixmap이 만든 작품을 만들기 위해 카이로 기능을 사용할 수 있지만 변경 및 이전 방법을 찾지 못했습니다. 오류 알 수없는 유형 이름 'GdkPixmap'Gtk 3 창에 Gif를로드하십시오. C C++
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
GdkPixbuf *load_pixbuf_from_file (const char *filename)
{
GError *error = NULL;
GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file (filename, &error);
if (pixbuf == NULL)
{
g_print ("Error loading file: %d : %s\n", error->code, error->message);
g_error_free (error);
exit (1);
}
return pixbuf;
}
GdkPixbufAnimation *load_pixbuf_animation_from_file (const char *filename)
{
GError *error = NULL;
GdkPixbufAnimation *pixbuf = gdk_pixbuf_animation_new_from_file (filename, &error);
if (pixbuf == NULL)
{
g_print ("Error loading file: %d : %s\n", error->code, error->message);
g_error_free (error);
exit (1);
}
return pixbuf;
}
int main (int argc, char **argv)
{
GtkWidget *window = NULL;
GdkPixbuf *image = NULL;
GdkPixbufAnimation * anim = NULL;
GtkWidget *widget = NULL;
GdkPixmap *background = NULL;
GtkStyle *style = NULL;
gtk_init (&argc, &argv);
/* Load a non animated gif */
image = load_pixbuf_from_file ("C://Users//Pcc//Downloads//66.gif");
// widget = gtk_image_new_from_pixbuf (image);
gdk_pixbuf_render_pixmap_and_mask (image, &background, NULL, 0);
style = gtk_style_new();
style->bg_pixmap [0] = background;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW(window), "Load Image");
gtk_window_set_default_size (GTK_WINDOW (window), 400, 300);
gtk_widget_set_style (GTK_WIDGET(window), GTK_STYLE (style));
gtk_window_set_transient_for (GTK_WINDOW (window), NULL);
GtkWidget *hbox = NULL;
hbox = gtk_hbox_new (0, FALSE);
gtk_container_add (GTK_CONTAINER(window), hbox);
GtkWidget *button = NULL;
button = gtk_button_new_with_label ("Sonic");
gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
gtk_widget_show_all (window);
gtk_main();
return 0;
}
사용하고 난 생각 해달라고되지 않는 GTK를 설치
유래에 설립 된이 코드는 gtk3 컴파일러에 작업을했다 나던 창을 사용하여 GTK2에로드 지프의 예입니다 좋다 gk를로드하는 gtk3에서 작동하는 코드 예를 게시하십시오.