0
我想要在窗口內顯示一個圖像,當用戶調整窗口大小時,這個圖像將會縮放。我該如何製作可縮放的GTK_IMAGE
static gboolean allocback(GtkWidget *w, GtkAllocation *a, char *data) {
/* pix is a pixbuf of the full image */
gtk_image_set_from_pixbuf(GTK_IMAGE(image), pix);
/* scale_image just scales the pixbuf of GTK_IMAGE keeping the ratio*/
scale_image(GTK_IMAGE(image), a->width, a->height);
return FALSE;
}
在主:我已經使用了大小分配事件這樣試圖使窗口變大時
g_signal_connect(G_OBJECT(window), "size-allocate", G_CALLBACK(allocback), NULL);
這隻會工作,但因爲圖像不能使它更小按說分配大小。我可以使用寬度爲100的東西,但我相信還有更好的方法。 在我的解決方案中不起作用的另一件事是從最大化的窗口返回。我希望它回到最大化的大小。現在它只是取消最大化窗口,但圖像的寬度和高度仍然相同,使窗口與圖像的寬度和高度相同。
有沒有人有任何好的解決方案呢?
滾動窗口很好。 :)當我調整窗口大小時,圖像會縮放,但我不喜歡它,但能夠用鼠標的滾輪縮放圖像是很好的。我只在Python中使用GTK +,但我認爲你有相同的功能。我使用'pixmap.scale_simple()',插值類型爲'gtk.gdk.INTERP_BILINEAR'。 – 2014-10-12 11:01:18
是的,我在我的scale_image函數中也使用了gdk_pixbuf_scale_simple – 2014-10-12 17:45:50