Gtk 3をグラフィックライブラリとして使用する、code :: blockでacアプリケーションを作成しようとしています このバージョンのgtkはgtk 2とは少し異なります。またはexampesはオンラインで利用可能です。私はあなたのウィンドウにgifを読み込むことを許可するGdkPixmapという名前の型を使いたいと思っています。グーグルでは、その型が廃止され、gtkの新しいバージョン(3)から削除されています。公式のドキュメント(gtk2からgtk3への移行)から、カイロ関数を使用してGdkPixmapによって作成された作品を作成することは可能ですが、どのように変更と移行が行われたかはわかりません。Gtk 3ウィンドウにGifをロードするC C++
stackoverflowの上に成り立っこのコードgtk3コンパイラの仕事をdoesntのGTK2を使用してウィンドウにロードするGIFの例である:エラー不明なタイプ名「てGdkPixmap」
#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をインストール良いです gkをロードするgtk3で動作するコードの例を投稿してください