GTKD - Attach Button to Grid in specific column and row

TheDGuy via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jun 14 07:54:54 PDT 2016


On Saturday, 11 June 2016 at 21:14:43 UTC, Mike Wey wrote:
> The way GTK manages width and height, usually widgets are given 
> the minimum size they need. So when the button is the only 
> widget in the grid the other rows and columns have a 
> height/width of 0.
>
> You can force the button / gird cell to the bottom left by 
> setting the expand and alignment properties of the button.
>
> this(int width, int height, string title){
>         super(title);
>         setDefaultSize(width,height);
>
>         Button btn = new Button();
>         btn.setSizeRequest(25,25);
>         btn.setLabel("Exit");
>         btn.setVexpand(true);
>         btn.setHexpand(true);
>         btn.setHalign(Align.END);
>         btn.setValign(Align.END);
>         auto call = &enterEvent;
>         btn.addOnEnterNotify(call);
>         btn.addOnLeaveNotify(call);
>
>         Grid grid = new Grid();
>         grid.setColumnSpacing(6);
>         grid.setRowSpacing(6);
>         grid.attach(btn,3,3,1,1);
>         add(grid);
>
>         showAll();
>     }

Thanks for your reply, but now the button is always on the bottom 
right :(

     this(int width, int height, string title){
         super(title);
         setDefaultSize(width,height);

         Button btn = new Button();
         btn.setSizeRequest(25,25);
         btn.setLabel("Exit");
         btn.setVexpand(true);
         btn.setHexpand(true);
         btn.setHalign(Align.END);
         btn.setValign(Align.END);

         Grid grid = new Grid();
         grid.setColumnSpacing(6);
         grid.setRowSpacing(6);
         grid.attach(btn,4,4,1,1);
         add(grid);
         showAll();
     }


More information about the Digitalmars-d-learn mailing list