Как я могу изменить толщину gtkwidget? - PullRequest
0 голосов
/ 01 марта 2019

Это изображение показывает сцену в моем текущем приложении.Это выглядит глупо.Пустой список 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();
}

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете использовать GtkGrid, установить для его вертикальной однородности значение ИСТИНА и установить высоту для каждого виджета в соответствии с желаемыми пропорциями:

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);

Однако это может быть не лучшим дизайнерским решением, поскольку вы тратите впустуюместо для кнопки.

...