我试图将二维数组作为参数传递给GTK中的函数,但没有成功。如何编辑数组中按钮的顺序?

GtkWidget *botones[4][4];

...
g_signal_connect(G_OBJECT(botones[0][0]), "clicked", G_CALLBACK(borra), botones);

...
void borra(GtkWidget *widget, gpointer info)
 {
    GtkWidget **elementos= (GtkWidget*) info;

     ...

 }

最佳答案

botones是一个4*4的GtkWidget *数组,当调用g_signal_connect时,将其转换为gpointer的typedef,然后在回调函数中,将void *转换回指向4gpointer数组的指针,如下所示:

GtkWidget * (*elementos)[4] = (GtkWidget *(*)[4])info;

然后可以使用GtkWidget *访问二维数组。

关于c - 传递二维数组以在C中的GTK中起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23531681/

10-10 13:43