Gtk GUI 中的刷新按钮框

Refresh Button Box in Gtk GUI

是否可以在执行提交和删除等特定操作时刷新具有多个按钮的按钮框?在提交时应该添加一个新按钮,在删除时(选择按钮后),按钮应该被销毁(而不是隐藏)。 GUI 是使用 GladeGtk-2 中设计的,代码在 C 语言.

使用 gtk_box_pack_start()...pack_end() 或任何其他相关方法将按钮添加到框中。在按钮上使用 gtk_widget_destroy() 将其从容器中移除并同时销毁它。

我得到了答案。在 for 循环中,我没有从 i=0 创建按钮,而是使用了一个新的 int 变量,它保存了已经存在的按钮总数,并且现在它只创建新的。

void Buttons()
{
    int i, totalrecord=0;
    int prevtotalbutton;
    for (i = prevtotalbutton ; i <totalrecord; i++)
    {
        ButtonfromArray = gtk_button_new_with_label (array);
        gtk_box_pack_start(GTK_BOX(VBbox), ButtonfromArray, FALSE, TRUE, 1);
        gtk_signal_connect (GTK_OBJECT (ButtonfromArray), "clicked", GTK_SIGNAL_FUNC (ButtonsCreated), VBbox);
        gtk_widget_show (ButtonfromArray);
    } 
    prevtotalbutton=totalrecord;
}

刷新按钮框在这里有点复杂。这个技巧确实奏效了,并且没有使用任何新函数来完成 destroy 和所有。

我们大多数人都遇到过这个问题。希望我的回答能帮到很多和我一样的人。