7

如何在 GtkGrid 中留下一个空行

我想创建一个带有按钮的 gtkgrid,例如:

        0         1        2         3
   ------------------------------------------
0  |         |           button2           |      
   - button1 -------------------------------
1  |         |           button3           |
   -----------------------------------------
2  |         |           button4           |
   -----------------------------------------
3  |         |         |         |         |
   -----------------------------------------
4  |         |      button5      |         |
   -----------------------------------------

如何在网格中插入一个空行 (3) 并在 gui 中将该行显示为空格?

谢谢。

4

1 回答 1

4

我试图完成类似的任务并找到了解决方法。我正在使用 GTK+3。我只是在第三行的一个单元格中添加了一个空标签,以使 GTK 为该行分配空间而不显示任何内容。

你可以做这样的事情(我假设第二个button2应该是button5):

// Declare widgets.
    GtkWidget *button1 = gtk_button_new_with_label("button1");
    GtkWidget *button2 = gtk_button_new_with_label("button2");
    GtkWidget *button3 = gtk_button_new_with_label("button3");
    GtkWidget *button4 = gtk_button_new_with_label("button4");
    GtkWidget *button5 = gtk_button_new_with_label("button5");
    GtkWidget *space = gtk_label_new("");
    GtkWidget *buttonGrid = gtk_grid_new();

//  Attach to the grid.
    gtk_grid_attach(GTK_GRID(buttonGrid),button1,0,0,1,2);
    gtk_grid_attach(GTK_GRID(buttonGrid),button2,1,0,3,1);
    gtk_grid_attach(GTK_GRID(buttonGrid),button3,1,1,3,1);
    gtk_grid_attach(GTK_GRID(buttonGrid),button4,1,2,3,1);
    gtk_grid_attach(GTK_GRID(buttonGrid),button5,1,4,2,1);
    gtk_grid_attach(GTK_GRID(buttonGrid),space,2,3,1,1);
    gtk_grid_set_column_homogeneous(GTK_GRID(buttonGrid),TRUE); 

这会产生这样的布局: 产生的布局

于 2013-05-05T14:31:32.197 回答