добавить ребенка в GtkVBox - PullRequest
       3

добавить ребенка в GtkVBox

0 голосов
/ 22 сентября 2010

У меня проблема при добавлении ребенка в GtkVBox.VBox находится внутри GtkViewPort, который находится внутри ScrolledWindows.

После того, как дочерний объект был добавлен с помощью gtk_box_pack_end, я проверяю, действительно ли он добавлен, проверяя GLIST, и кажется, что он добавлен.Хотя визуально все появляется, и прокручиваемое окно становится действительно большим.Например, если было добавлено что-то действительно большое и невидимое.

Код выглядит следующим образом:

GtkWidget *child;
switch (response_id) {
    case GTK_RESPONSE_ADD:

        //The see the code for this function read the other 
        //piece of code i'm posting
        child = (GtkWidget *)newChild();
        gtk_box_pack_end((GtkBox *)protocolsBox, child, 0, 1, 0);

        GList *temp = gtk_container_get_children((GtkContainer *) protocolsBox);

        //Here I do a while to check if the list has gotten bigger

        break;
}

Функция newChild () имеет следующий вид:

GtkHBox* newChild() {
   printf("Creating new hbox\n");
   countProt++;

   //creation of all the widgets to look for a service
   GtkHBox* new = (GtkHBox *) gtk_hbox_new(0, 0);
   GtkEntry* nameEntry = (GtkEntry *) gtk_entry_new();
   GtkEntry* domainEntry = (GtkEntry *) gtk_entry_new();
   GtkHButtonBox *buttons = (GtkHButtonBox *) gtk_hbox_new(1, 0);
   GtkRadioButton *tcpButton = (GtkRadioButton *) gtk_radio_button_new_with_label_from_widget(NULL, "tcp");
   GtkRadioButton *udpButton = (GtkRadioButton *) gtk_radio_button_new_with_label_from_widget(tcpButton, "udp");

   //packing the radio button widget
   gtk_box_pack_start((GtkBox *) buttons, (GtkWidget *) tcpButton, 0, 0, 0);
   gtk_box_pack_end((GtkBox *) buttons, (GtkWidget *) udpButton, 0, 0, 0);

   //packing the outer most widget
   gtk_box_pack_start((GtkBox *) new, (GtkWidget *) nameEntry, 1, 1, 0);
   gtk_box_pack_end((GtkBox *) new, (GtkWidget *) buttons, 0, 0, 0);
   gtk_box_pack_end((GtkBox *) new, (GtkWidget *) domainEntry, 1, 1, 0);

   return new;
 }

Любойпредложения?

1 Ответ

1 голос
/ 22 сентября 2010

Вы звонили gtk_widget_show() на ваших новых виджетах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...