如何复制或复制gtk小部件? 在我的应用程序中,我有一个巨大的GtkComboBox创建了一个long for循环,耗费了大量的时间,我在一个屏幕中的两个地方使用这个组合。
所以,我想做的是创建这个组合一次,然后将它复制/复制到另一个组合中,这样可以节省我的时间。
如果我尝试两次添加相同的组合框指针,gtk给我错误“child-> paren!= NULL”因为gtk小部件只能有单个父级。
那该怎么办?
答案 0 :(得分:4)
这就是为什么GTK +中显示数据的许多小部件都基于模型。该模型保存数据,而不是小部件。窗口小部件充当数据的“视图”,模型可以在多个窗口小部件之间共享。
您只需在两个组合框中使用相同的模型:
GtkListStore *model;
GtkWidget *c1, *c2;
/* Set up the model. */
model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INTEGER); /* Or whatever. */
/* Create first combo. */
c1 = gtk_combo_box_new_with_model(GTK_TREE_MODEL(model));
/* Create second combo. */
c2 = gtk_combo_box_new_with_model(GTK_TREE_MODEL(model));