gpt4 book ai didi

c - 如何创建并保存gtk界面

转载 作者:行者123 更新时间:2023-11-30 16:43:03 25 4
gpt4 key购买 nike

我正在使用glade和gtk以及c语言来创建一个应用程序。我有一个空地文件,我需要创建一个小部件列表,以澄清我需要创建可变数量的行,并且在每一行中我需要放置一些小部件、标签、按钮等。如何修改我的空地文件并通过 C 代码使修改永久化?

这是我的代码,但它不显示网格,也不将修改保存在林间空地文件中:

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代码,所以当我按下按钮时将显示修改后的林间空地文件以及相应的修改后的窗口

最佳答案

解决问题的最简单方法(在我看来)是设计页面,如果不需要,可以将其隐藏。 IE。制作您需要的所有表格,将它们放入一个 Box 中,并且仅 show() 其中之一。

如果表单差别不大,比如只有少数项目发生变化,您可以在同一个 GtkGridGtkBox 中执行此操作:仅显示您需要显示的字段。在 VBox 或 HBox 中,不可见的项目不占用任何空间。

如果您想在 Glade 中执行(准备)此操作,请将要隐藏的项目设置为不可见,然后通过代码将其属性更改为可见。

如果您想一次隐藏/显示多个项目,您可以将它们再次分组到单独的 GtkFrameGtkGridGtkBox 中,然后在框架或盒子上应用隐藏/显示。

关于c - 如何创建并保存gtk界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45554130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com