【问题标题】:How I can align widgets in GTK 3如何在 GTK 3 中对齐小部件
【发布时间】:2014-04-11 22:04:42
【问题描述】:
box1=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,3);
align=gtk_alignment_new(1,0,0,0);
my=gtk_button_new_with_label("HELLO");
gtk_container_add(GTK_CONTAINER(frame),my);
gtk_container_add(GTK_CONTAINER(box1),frame);
gtk_container_add(GTK_CONTAINER(window),box1);

我必须编写所有这些代码来对齐窗口左上方的按钮,或者是一种更简单的方法。如果有人可以给我更多关于 GTK 容器的信息,因为我很难理解参考。

在使用 Glade 之前,我想看看它是如何工作的。对不起我的英语。

【问题讨论】:

    标签: c gtk


    【解决方案1】:

    更新:正如jkuGtkHBoxGtkVBoxGtkTable 所述,现在已弃用,应改用GtkGridGtkAlignment 也已弃用,应使用answer by Phillip Wood 中给出的属性。


    我认为您的意思是 gtk_alignment_new(0,0,0,0) 向左对齐。但是在不知道窗口中的其他小部件的情况下,这对我来说看起来不错。这就是你对齐的方式。

    GTK 中的基本布局容器有:

    • GtkFixed 允许小部件绝对定位。

      +----------------------------+
      |                   Widget 3 |
      | Widget 2                   |
      |              Widget 1      |
      |                            |
      +----------------------------+
      
    • GtkHBox 允许水平放置小部件:

      +--------+-----+
      | Widget | ... |
      +--------+-----+
      
    • GtkVBox 允许垂直放置小部件:

      +--------+
      | Widget |
      +--------+
      |  ...   |
      +--------+
      
    • GtkTable 允许网格或表格布局。

      +--------+-----+
      | Widget | ... |
      +--------+-----+
      |  ...   | ... |
      +--------+-----+
      

    除了这些容器之外,还有GtkAlignment 允许您控制小部件在其分配空间内的对齐方式。

    GTK+ layout management 是一个不错的教程,提供了不同布局容器的工作示例。

    【讨论】:

    • 作为参考,链接的教程和此答案的部分内容已过时或迅速变得过时:Table、VBox 和 HBox 已被弃用,取而代之的是 Grid(或 Box,但 Grid 做了 Box 可以做的所有事情) . Alignment 将在 3.14 中弃用,因为 Widget 属性已经完成了 Alignment 所做的一切。
    【解决方案2】:

    作为 Gtk3 中 GtkAlignment 注释的文档,通常不需要使用它,因为可以通过设置您希望的小部件的 halignmarginhexpand 属性来实现相同的效果对齐。

    要让按钮位于左上角,您需要将 halignvalign 设置为 GTK_ALIGN_START

    【讨论】:

      猜你喜欢
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-11
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      相关资源
      最近更新 更多