Я помню, была формула в C, чтобы заполнить автоматически сетку кнопками, и я не могу найти страницу, где я ее нашел, может кто-нибудь мне помочь? Я помню, что использовались два FOR. Его в GTK + 3.0 и на С.Как заполнить сетку gtk кнопками?
ответ
Как это:
// 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);
}
}
}
Я сделал то же самое, что и вы, у меня не было ошибок, но программа не запускалась. 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
К сожалению, не знаю, как форматировать текст для отображения в качестве блока кода :( – user2453107
Ok, Я загрузить весь демонстрационный код на GitHub Его можно найти здесь:. Https://github.com/LiuLang/GTK-тест/дерево/мастер/сетка-фасовочно-с кнопками – LiuLang
Что такое код? Вы добавили кнопку в hbox или vbox? – mattn
Конечно, должно быть два цикла 'for', по одному для каждого столбца и один для строк. – LiuLang
Я получил сетку из файла glade с gtk_builder_get_object. Сетка находится на hbox. – user2453107