我使用glade和gtk與c語言來創建應用程序。我有一個glade文件,我需要創建一個小部件列表,以闡明我需要創建一個可變數量的行,並且在每行中我需要放置一些小部件,標籤,按鈕等。 如何修改我的glade文件並從C代碼永久修改?如何創建和保存gtk界面
這裏我的代碼,但它並不顯示網格,不保存在林間空地文件的修改:
void on_Pagamento1_clicked() {
GtkBuilder *builderPagamento;
GtkWidget *window;
GtkGrid *g_grd_linea;
GtkWidget *g_cbt_mattino = gtk_combo_box_text_new_with_entry();
GtkWidget *g_lbl_nome = gtk_label_new ("Nome");
GtkWidget *g_lbl_cognome = gtk_label_new ("Cognome");
GtkWidget *g_lbl_eta = gtk_label_new ("Eta");
GtkLayout *g_lyt_layout;
int i;
builderPagamento = gtk_builder_new();
gtk_builder_add_from_file (builderPagamento, "glade/pagamento.glade", NULL);
window = GTK_WIDGET(gtk_builder_get_object(builderPagamento, "pagamento"));
gtk_builder_connect_signals(builderPagamento, NULL);
g_lyt_layout = GTK_LAYOUT(gtk_builder_get_object(builderPagamento, "layout"));
gtk_combo_box_text_append_text (g_cbt_mattino,"35.00");
gtk_label_set_text(GTK_LABEL(g_lbl_nome), "Prova");
g_grd_linea = gtk_grid_new();
for(i=1;i<=4;i++){
gtk_grid_insert_column (g_grd_linea,i);
}
gtk_grid_attach (g_grd_linea,g_lbl_nome,1,0,1,1);
gtk_grid_attach (g_grd_linea,g_lbl_cognome,2,0,1,1);
gtk_grid_attach (g_grd_linea,g_lbl_eta,3,0,1,1);
gtk_grid_attach (g_grd_linea,g_cbt_mattino,4,0,1,1);
gtk_layout_put(g_lyt_layout,g_grd_linea,0,0);
g_object_unref(builderPagamento);
gtk_widget_show(window);
}
編輯: 我想我已經解決了我的問題:由於窗口不主窗口,它只是通過按下按鈕創建的,我打開文件,然後修改c代碼中glade的XML代碼,所以當我按下按鈕時,它將顯示修改過的glade文件,並因此顯示修改的窗口
粘貼您的代碼。 –