TreeView里加的按钮不能按

发布于 2022-07-24 14:14:50 字数 5350 浏览 10 评论 2

  1. #include <gtk/gtk.h>
  2. enum
  3. {
  4.   CHECK_BTN=0,
  5.   COL_NAME,
  6.   COL_AGE,
  7.   NUM_COLS
  8. } ;
  9. static GtkTreeModel *
  10. create_and_fill_model (void)
  11. {
  12.   GtkListStore  *store;
  13.   GtkTreeIter    iter;
  14.   store = gtk_list_store_new (NUM_COLS,G_TYPE_BOOLEAN,G_TYPE_STRING, G_TYPE_UINT);
  15.   /* Append a row and fill in some data */
  16.   gtk_list_store_append (store, &iter);
  17.   gtk_list_store_set (store, &iter,
  18.                       CHECK_BTN,TRUE,
  19.                       COL_NAME, "Heinz El-Mann",
  20.                       COL_AGE, 51,
  21.                       -1);
  22.   /* append another row and fill in some data */
  23.   gtk_list_store_append (store, &iter);
  24.   gtk_list_store_set (store, &iter,
  25.                       CHECK_BTN,FALSE,
  26.                       COL_NAME, "Jane Doe",
  27.                       COL_AGE, 23,
  28.                       -1);
  29.   /* ... and a third row */
  30.   gtk_list_store_append (store, &iter);
  31.   gtk_list_store_set (store, &iter,
  32.                       CHECK_BTN,TRUE,
  33.                       COL_NAME, "Joe Bungop",
  34.                       COL_AGE, 91,
  35.                       -1);
  36.   return GTK_TREE_MODEL (store);
  37. }
  38. GtkWidget *create_window()
  39. {
  40.   GtkCellRenderer     *renderer;
  41.   GtkTreeModel        *model;
  42.   GtkWidget           *view;
  43.   GtkWidget           *window;
  44.   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  45.   g_signal_connect (window, "delete_event", gtk_main_quit, NULL); /* dirty */
  46.   view = gtk_tree_view_new ();
  47.   /* --- Column #1 --- */
  48.   renderer = gtk_cell_renderer_toggle_new();
  49. // g_object_set(G_OBJECT(renderer),"activatable",TRUE);
  50.   gtk_cell_renderer_toggle_set_active(GTK_CELL_RENDERER_TOGGLE(renderer),FALSE);  gtk_cell_renderer_toggle_set_radio(GTK_CELL_RENDERER_TOGGLE(renderer),FALSE);
  51.   gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), -1,"按钮",  renderer, "active",CHECK_BTN,NULL);
  52.   /* --- Column #2 --- */ renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), -1,"Name",  renderer, "text", COL_NAME, NULL);
  53.   /* --- Column #3 --- */
  54.   renderer = gtk_cell_renderer_text_new ();
  55.   gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), -1,"Age", renderer, "text", COL_AGE,NULL);
  56.   model=create_and_fill_model ();
  57.   gtk_tree_view_set_model (GTK_TREE_VIEW (view), model);
  58.   /* The tree view has acquired its own reference to the
  59.    *  model, so we can drop ours. That way the model will
  60.    *  be freed automatically when the tree view is destroyed */
  61.   gtk_container_add(GTK_CONTAINER(window),view);
  62.   return window;
  63. }
  64. int
  65. main (int argc, char **argv)
  66. {
  67.   GtkWidget *window;
  68.   gtk_init (&argc, &argv);
  69.   window= create_window();
  70.   gtk_widget_show_all (window);
  71.   gtk_main ();
  72.   return 0;
  73. }

复制代码

我在里面加了个按钮但是怎么按也按不动不知道为什么
初学GTK请老鸟指教

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

哎呦我呸! 2022-07-25 14:29:06

我已经知道了
不过还是谢谢版主告诉我这个好东西,如果有这东西那还用去问人呀
哈哈

风流物 2022-07-24 20:36:18

请运行 gtk-demo 程序,然后查看 Tree View -> List Store 的源程序,就应该知道怎么处理了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文