我正在尝试使用 gtk 将图像添加到窗口,我在一个矩阵上运行了一个 while 循环,每个矩阵都有一定的值,我想在每次匹配时将一个新图像添加到屏幕上的位置。
这是我第一次使用 gtk,所以我将不胜感激任何帮助和建议。
void ShowMatrix(int solution[SIZE_ROW][SIZE_COL]) {
GtkWidget *window;
GtkWidget *grid;
GtkWidget *image;
GdkPixbuf *pixbuf;
int print_mat[SIZE_ROW][SIZE_COL];
int i, j;
int counter = 1;
gtk_init(NULL, NULL);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Pooing Dog");
gtk_window_set_default_size(GTK_WINDOW(window), 400, 400);
gtk_container_set_border_width(GTK_CONTAINER(window), 10);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
grid = gtk_grid_new();
gtk_container_add(GTK_CONTAINER(window), grid);
while (counter <= 64)
{
for (i = 0; i < SIZE_ROW; i++)
{
for (j = 0; j < SIZE_COL; j++)
{
if (solution[i][j] == counter)
{
pixbuf = gdk_pixbuf_new_from_file("Negev_t.png", NULL);
image = gtk_image_new_from_pixbuf(pixbuf);
gtk_grid_attach(GTK_GRID(grid), image, j, i, 1, 1);
gtk_widget_show(image);
gtk_widget_queue_draw(window);
gtk_main_iteration_do(FALSE);
sleep(1);
}
}
}
counter++;
}
gtk_main();
}