2013-06-25 7 views
0

Я помню, была формула в C, чтобы заполнить автоматически сетку кнопками, и я не могу найти страницу, где я ее нашел, может кто-нибудь мне помочь? Я помню, что использовались два FOR. Его в GTK + 3.0 и на С.Как заполнить сетку gtk кнопками?

+0

Что такое код? Вы добавили кнопку в hbox или vbox? – mattn

+1

Конечно, должно быть два цикла 'for', по одному для каждого столбца и один для строк. – LiuLang

+0

Я получил сетку из файла glade с gtk_builder_get_object. Сетка находится на hbox. – user2453107

ответ

0

Как это:

// insert 9 buttons to a grid, 3x3. 
void fill_grid_with_buttons(GtkWidget *grid) 
{ 
    GtkWidget *button; 
    int i, j; 

    for (i = 0; i < 3; i += 1) { 
    for (j = 0; j < 3; j += 1) { 
     button = gtk_button_new_with_label ("label"); 
     gtk_grid_attach (GTK_GRID (grid), button, i, j, 1, 1); 
    } 
    } 
} 
+0

Я сделал то же самое, что и вы, у меня не было ошибок, но программа не запускалась. GtkWidget * grid1, * grid2; GtkWidget * button [145]; int i, j, k = 0; grid1 = GTK_WIDGET (gtk_builder_get_object (строитель, «grid1»)); для (я = 0; г <13; я ++) { \t для (J = 0; г <13; j ++) { \t \t кнопку [K] = gtk_button_new(); \t \t gtk_grid_attach (сетка1, кнопка [k], i, j, 1, 1); \t \t k ++; \t} } – user2453107

+0

К сожалению, не знаю, как форматировать текст для отображения в качестве блока кода :( – user2453107

+0

Ok, Я загрузить весь демонстрационный код на GitHub Его можно найти здесь:. Https://github.com/LiuLang/GTK-тест/дерево/мастер/сетка-фасовочно-с кнопками – LiuLang