This image显示了当前应用程序中的场景。看起来很蠢空的gtk列表仅占用屏幕的一半。如何使它占据屏幕的五分之四,完成按钮占据五分之一?我一如既往地使用C编程语言和刚刚升级到的gtk3。如果有一种方法可以调整小部件的厚度,我也很难处理繁琐的文本输入。使其均质使它们相同,但是我如何使其不均质但让我决定每个小部件获得多少屏幕?
#include "DisplayHelp.h"
#define NOTHING
void DisplayHelp(void) {
gtk_main_quit(NOTHING);
gtk_widget_destroy(Box);
Box = gtk_vbox_new(0, 0);
GtkWidget (*Button) = NULL;
GtkWidget (*List) = gtk_list_box_new();
gtk_container_add(GTK_CONTAINER(Box), List);
gtk_container_add(GTK_CONTAINER(Window),Box);
Button = gtk_button_new_with_label("Done");
gtk_box_pack_start(GTK_BOX (Box), Button, 1, 1, FALSE);
g_signal_connect(Button,"clicked",DisplayOptions,NULL);
//i need a function to ajust the size of the button here
printf("Entering the screen: Help\n");
gtk_widget_show_all(Window);
gtk_main();
}
答案 0 :(得分:1)
您可以使用GtkGrid,将其垂直均匀性设置为TRUE,并根据所需比例为每个小部件设置高度:
grid = gtk_grid_new ();
gtk_grid_set_row_homogeneous (grid, TRUE);
/*l t w h*/
gtk_grid_attach (grid, top_widget, 0, 0, 1, 4);
gtk_grid_attach (grid, bot_widget, 0, 0, 1, 1);
但是,这可能不是最佳的设计解决方案,因为您浪费了按钮空间。