0
我要複製通過GtkBuilder加載的GtkWidget重複的GtkWidget用C
我的問題是,告訴GTK來它裝入同一VBOX它已經在導致一個錯誤,我不知道如何複製它。我想它涉及到指針和引用的混亂,這可能是爲什麼我錯過了這一點。
static GtkWidget *my_widget(){
GtkBuilder *builder;
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "widget.glade", NULL);
return GTK_WIDGET (gtk_builder_get_object (builder, "widget"));
}
int
main (int argc, char *argv[])
{
GtkBuilder *builder;
GtkWidget *window;
GtkWidget *widget;
gtk_init (&argc, &argv);
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "userinterface.glade", NULL);
window = GTK_WIDGET (gtk_builder_get_object (builder, "mainwindow"));
gtk_builder_connect_signals (builder, NULL);
// Load widget into box
int i;
for (i=0; i<5; i++){
gtk_box_pack_start(GTK_BOX (gtk_builder_get_object (builder, "widget_vbox")),
my_widget(),
FALSE,
TRUE,
0);
if(i!=4){ // Don't add a seperator at the last loop
widget = gtk_hseparator_new();
gtk_box_pack_start(GTK_BOX (gtk_builder_get_object (builder, "solo_mission_vbox")),
widget,
FALSE,
TRUE,
0);
gtk_widget_show(widget);
}}}
這填充了窗口部件的窗口與分隔符之間的5次。問題在於該程序打開和關閉相同的文件5次以上才能實現。
如何將構建器輸出和「複製」到5個完全不同的實例中?它可能涉及很多*
s和&
s。
它已經在它自己的小文件中,但是說較小的文件超過了11kb ... – 2011-04-29 09:18:07
好吧,如果你可以複製它,它將涉及爲每個小部件實例重新構造所有的子小部件。除非你真的注意到一個重大的性能問題,否則我不會擔心五次讀取文件。不要浪費時間來優化不需要優化的東西。 – ptomato 2011-04-29 09:50:52