专业黑客先做事后付款24小时接单黑客

专业黑客先做事后付款24小时接单黑客int main(int argc, char *argv[]){ GtkWidget *window; GtkWidget *list; GtkWidget *vbox; GtkWidget *label; GtkTreeSel
int main(int argc, char *argv[])
{
 
  GtkWidget *window;
  GtkWidget *list;
 
  GtkWidget *vbox;
  GtkWidget *label;
  GtkTreeSelection *selection;
 
  gtk_init(&argc, &argv);
 
  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  list = gtk_tree_view_new();
 
  gtk_window_set_title(GTK_WINDOW(window), "List view");
  gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);//设置为居中。
  gtk_container_set_border_width(GTK_CONTAINER(window), 10);
  gtk_widget_set_size_request(window, 270, 250);
 
  gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list), FALSE);
 
  vbox = gtk_vbox_new(FALSE, 0);
 
  gtk_box_pack_start(GTK_BOX(vbox), list, TRUE, TRUE, 5);
 
  label = gtk_label_new("");
  gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5);
 
  gtk_container_add(GTK_CONTAINER(window), vbox);
 
  init_list(list);
  add_to_list(list, "Aliens");
  add_to_list(list, "Leon");
  add_to_list(list, "The Verdict");
  add_to_list(list, "North Face");
  add_to_list(list, "Der Untergang");
 
  selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list));
 
  g_signal_connect(selection, "changed",
           G_CALLBACK(on_changed), label);
 
  g_signal_connect(G_OBJECT (window), "destroy",
           G_CALLBACK(gtk_main_quit), NULL);
 
  gtk_widget_show_all(window);
 
  gtk_main();
 
  return 0;
}

在我们上面的这个示例代码中,我们将向大家展示的是5个条目并布置于GtkTreeView 构件中。我们首先在window中放置一个GtkVBox 构件。 在这个 GtkVBox 构件中含有两个构件:GtkTreeView和GtkLabel。

list = gtk_tree_view_new();
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list), FALSE);

调用list()函数,初始化构件list。

1
2
3
4
renderer = gtk_cell_renderer_text_new();
 column = gtk_tree_view_column_new_with_attributes("List Items",
     renderer, "text", LIST_ITEM, NULL);
 gtk_tree_view_append_column(GTK_TREE_VIEW(list), column);

在初始化函数中,我们生成了只有一栏的GtkTreeView。

1
2
3
store = gtk_list_store_new(N_COLUMNS, G_TYPE_STRING);
 gtk_tree_view_set_model(GTK_TREE_VIEW(list),
   GTK_TREE_MODEL(store));

接下来我们又生成了一个GtkListStore 构件(a model) 然后把它与list 构件绑定。

g_object_unref(store);

这个 model 被自动的销毁,以释放内存空间。

add_to_list(list, "Aliens");

上面就是在调用add_to_list()函数,实现向list 中在增加一个选项的功能。

store = GTK_LIST_STORE(gtk_tree_view_get_model
(GTK_TREE_VIEW(list)));

gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, LIST_ITEM, str, -1);

在函数add_to_list() 中,我们利用系统函数gtk_tree_view_get_model()来获得model。我们生成新的一行并把行中的数据交给model处理,这里正是借助GtkTreeIter来完成这个功能。

selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list));

GtkTreeSelection际上并不需要明确生成。在这里,我们是利用 GtkTreeView构件自动来生成。来帮助完成这项工作的正如你所见到的是系统函数gtk_tree_view_get_selection()。


  • 发表于 2021-04-03 14:05
  • 阅读 ( 1183 )
  • 分类:互联网

0 条评论

请先 登录 后评论
小杨说缅北
小杨说缅北

741 篇文章

你可能感兴趣的文章

相关问题