如何在应用程序启动时显示treeview的所有列。我的treeview有多个列:
gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_INT);但是当我运行我的应用程序时,我只看到前两列(我想我的窗口的包装有最小的大小),所以我不得不滚动以查看其余的列。我的问题是:如何告诉我的窗口调整自身大小,以确保treeview的所有列都是可见的?
gtk_widget_get_allocation:使用Update1没有任何效果,仍然需要滚动treeview来查看其余的列
GtkAllocation* alloc = g_new (GtkAllocation, 1);
gtk_widget_get_allocation (pAD->treeview, alloc);
gtk_window_set_size_request (GTK_WINDOW (pAD->parent), alloc->width, alloc->height);
g_free (alloc);发布于 2022-04-29 16:43:25
您没有提到您使用的是哪个版本的GTK,但是如果您碰巧使用的是GTK3,则可以使用“分配”对象和"gtk_window_set_default_size“函数的组合。例如,您的程序可以包括以下附加代码。
GtkAllocation* alloc = g_new(GtkAllocation, 1);
/* your program code prior to displaying the window */
gtk_widget_get_allocation(list, alloc);  /* List name "list" for this example */
gtk_window_set_default_size(GTK_WINDOW(window), alloc->width, alloc->height);看看这能不能解决你的问题。
致以问候。
https://stackoverflow.com/questions/71903092
复制相似问题