Frage

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

I must write all this code to align a button on the left up of the window or is a easier way.If someone can give me more information about containers of GTK because I understand hard the reference .

Before using Glade I want to see how things works. Sorry about my english.

War es hilfreich?

Lösung

As the documentation for GtkAlignment notes in Gtk3 there is usually no need to use it as the same effect can be achieved by setting the halign and margin, hexpand properties of the widget that you wish to align.

To have the button in the top left you would set halign and valign to GTK_ALIGN_START.

Andere Tipps

UPDATE: As noted by jku, GtkHBox, GtkVBox, and GtkTable are now deprecated, and GtkGrid should be used instead. GtkAlignment is also deprecated, and the properties given in the answer by Phillip Wood should be used instead.


I think you meant gtk_alignment_new(0,0,0,0) to align to the left. But without knowing about the other widgets within the window, that looks good to me. That's how you align.

The basic layout containers in GTK are:

  • GtkFixed which allows widgets to be absolutely positioned.

    +----------------------------+
    |                   Widget 3 |
    | Widget 2                   |
    |              Widget 1      |
    |                            |
    +----------------------------+
    
  • GtkHBox allows widgets the be positioned horizontally:

    +--------+-----+
    | Widget | ... |
    +--------+-----+
    
  • GtkVBox allows widgets to be positioned vertically:

    +--------+
    | Widget |
    +--------+
    |  ...   |
    +--------+
    
  • GtkTable allows for a grid or table layout.

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

In addition to those containers, there's also GtkAlignment which allows you to control the alignment of a widget within its allotted space.

GTK+ layout management is a decent tutorial providing working examples of the different layout containers.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top