我试图将二维数组作为参数传递给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/