Thank you,for your kind and your example! In Python,gtk.Widget.get_allocation() and gtk.Windget.allocation(as an attribute) return the same gtk.gdk.Rectange,which indeed is the actual size. So i guess get the size is a solved problem now.
What i need about setting the size of the widget is not about the minimum one.It more like setting the 'allocation' size and not to prevent the widget from resizing to a smaller size by the user manually. Maybe it's not clear,but i don't know how to explain myself better. On Sat, Aug 8, 2009 at 12:51 AM, Jorge Opaso Pazos <[email protected]>wrote: > In C, to obtain the actual size of the widget: > > widget->allocation.{width,height} > > To set the size (minimum size): > > gtk_widget_set_size_request > > Example: > > static void _label_size_allocate(GtkWidget *a_widget, > GtkAllocation *a_alloc, > gpointer a_data) > { > printf("size %d %d\n", > a_widget->allocation.width, > a_widget->allocation.height); > } > > > int main(int a_argc,char **a_argv) > { > GtkWidget *l_label; > GtkWidget *l_window; > > gtk_init(&a_argc,&a_argv); > > > l_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); > > l_label = gtk_label_new("hello"); > gtk_widget_set_size_request(GTK_WIDGET(l_label),800,600); > // To see de changes with manual resize. > g_signal_connect(G_OBJECT(l_label), > "size-allocate", > G_CALLBACK(_label_size_allocate), > NULL); > > gtk_container_add(GTK_CONTAINER(l_window),l_label); > gtk_widget_show_all(l_window); > > > gtk_main(); > > > return 0; > } > > gtk_widget_size_allocate doesn't work for me. > > Atentamente, > > Jorge Opaso Pazos > AUTOLogic LTDA > > > > > El 07-08-2009, a las 9:21, cbx escribió: > > I tried:in Python,it is gtk.Label.size_request().However, it only return > the size the widget request to draw itself.If you resize the window,which in > turn resizes the label,the value gtk.Label.size_request() returns doesn't > change. > > I find gtk.Widget.get_allocation() would work,even when the label is > resized.It returns a gtk.gdk.Rectangle(x, y, width, height),like (0, 0, 74, > 17). > > And,how to set the size of gtk.Label?Is gtk.Widget.size_allocate() the > answer? > > > On Fri, Aug 7, 2009 at 10:43 AM, Jorge Opaso Pazos > <[email protected]>wrote: > >> This works (C): >> int main(int a_argc,char **a_argv) >> { >> GtkWidget *l_label; >> GtkRequisition l_req; >> >> gtk_init(&a_argc,&a_argv); >> >> l_label = gtk_label_new("hello"); >> memset(&l_req,0,sizeof(GtkRequisition)); >> gtk_widget_size_request(l_label,&l_req); // not >> gtk_widget_get_size_request >> >> printf("%d %d\n",l_req.width,l_req.height); >> >> return 0; >> } >> >> Output: 31 17 >> * >> * >> Maybe in python is: gtk.Label.size_request() >> >> Atentamente, >> >> Jorge Opaso Pazos >> AUTOLogic LTDA >> >> >> >> >> El 06-08-2009, a las 21:33, cbx escribió: >> >> I would like to know how to get and set the size of a label. >> There seems no answer in the pygtk API(me using Python currently). >> gtk.Label.get_size_request() only return (-1,-1). >> Google doesn't give much information too. >> _______________________________________________ >> gtk-list mailing list >> [email protected] >> http://mail.gnome.org/mailman/listinfo/gtk-list >> >> >> > >
_______________________________________________ gtk-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtk-list
