gpt4 book ai didi

c - 添加一个 child 到 GtkVBox

转载 作者:太空宇宙 更新时间:2023-11-04 11:40:37 25 4
gpt4 key购买 nike

我在向 GtkVBox 添加子项时遇到问题。 VBox 位于 GtkViewPort 内,而 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;
}

有什么建议吗?

最佳答案

您是否在您的新小部件上调用了 gtk_widget_show()

关于c - 添加一个 child 到 GtkVBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3772513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com