【问题标题】:How can I change the thickness of a GTKWidget?如何更改 GTKWidget 的厚度?
【发布时间】:2019-03-01 04:04:21
【问题描述】:

This image 显示了我当前应用程序中的一个场景。这种外观是不希望的。空的 GtkList 只占屏幕的一半。我怎样才能让它占据屏幕的五分之四而完成按钮占据五分之一?我一如既往地使用 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 adjust the size of the button here

    printf("Entering the screen: Help\n");
    gtk_widget_show_all(Window);
    gtk_main();
}

【问题讨论】:

    标签: user-interface gtk gtk3


    【解决方案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);
    

    但是,它可能不是最好的设计解决方案,因为您在浪费按钮空间。

    【讨论】:

      猜你喜欢
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 2013-07-14
      • 2019-04-09
      • 2021-01-13
      相关资源
      最近更新 更多