在Gtk GUI中刷新按钮框

时间:2015-09-03 06:29:25

标签: c submit glade gtk2

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我得到了答案。在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 和所有。

我们大多数人都面临这个问题。希望我的回答可以帮助像我这样的许多人。