执行gtk3的新高度宽度几何管理方法

继续我以前的问题

拖放固定容器会改变其大小

我按照ergosys提供的建议阅读了他提供的链接中的信息。
如果我理解正确,那就是新的宣告方式

/* LEFT FRAME */ frame1= gtk_frame_new(NULL); gtk_table_attach(GTK_TABLE(table), frame1, 0,14,0,49,GTK_SHRINK,GTK_SHRINK,0,0); gtk_widget_set_size_request(frame1, 360,570); 

是(暂时忽略高度)

 static void my_widget_get_preferred_width (GtkWidget *widget, gint *minimal_width, gint *natural_width) { GtkRequisition requisition; gtk_widget_get_requisition (widget, &requisition); *minimal_width = *natural_width = requisition.width; } .... /* LEFT FRAME */ frame1= gtk_frame_new(NULL); gtk_table_attach(GTK_TABLE(table), frame1, 0,14,0,49,GTK_SHRINK,GTK_SHRINK,0,0); gint min_width=360; gint nat_width=360; GTK_WIDGET_GET_CLASS(frame1)->get_preferred_width=my_widget_get_preferred_width; my_widget_get_preferred_width(frame1,&min_width,&nat_width); 

它编译好,但是,运行时,它给了我这个错误:

 (conky_companion:19700): Gtk-WARNING **: GtkFrame 0xa00e660: widget tried to gtk_widget_get_width inside GtkWidget ::get_width implementation. Should just invoke GTK_WIDGET_GET_CLASS(widget)->get_width directly rather than using gtk_widget_get_width 

没有画过窗户,一段时间后就会出现段错误。

我在这里想念的是什么?
或者,TL; DR,相当于什么

 gtk_widget_set_size_request(frame1, 360,570); 

在gtk3?