Мне нужно, чтобы изображение было изменено до размера всего окна и чтобы я мог сохранить размер окна.Это отдельная задача, которую легко выполнить, но не вместе.Пример кода, который я использую:
myWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(myWindow), "name");
gtk_window_set_default_size(GTK_WINDOW(myWindow), myWidth, myHeight);
gtk_window_set_resizable(GTK_WINDOW(myWindow), TRUE);
g_signal_connect(myWindow, "delete-event", G_CALLBACK(PrivDeleteEvent), this);
g_signal_connect(myWindow, "destroy", G_CALLBACK(PrivOnDestroy), this);
myImage = gtk_image_new();
GtkWidget* container = gtk_alignment_new(0, 0, 1, 1);
gtk_container_add(GTK_CONTAINER(myWindow), container);
gtk_container_add(GTK_CONTAINER(container), myImage);
g_signal_connect(myImage, "expose-event", G_CALLBACK(PrivOnImageExposeEvent), this);
gtk_widget_show_all(myWindow);
gtk_main();
void
PrivSetImage()
{
GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data(...);
gtk_image_set_from_pixbuf(GTK_IMAGE(myImage), pixbuf);
}
После изменения размера виджета изображения я вызываю некоторые элементы рендеринга, а затем показываю их в самом GtkImage.Это хорошо работает, я вижу изображение, и я могу изменить размер окна.Но после вызова gtk_image_set_from_pixbuf я больше не могу сжимать окно меньше размера, используемого для создания Pixbuf.Как будто где-то внутри есть вызов gtk_widget_set_size_request с измерениями Pixbuf, который блокирует окно, чтобы уменьшить размер pixbuf.Любое предложение?