我尝试将二维数组作为参数传递给 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
是 void *
的 typedef,然后在回调函数中,您应该将 gpointer
转换回指向 4 GtkWidget *< 的数组的指针
像这样:
GtkWidget * (*elementos)[4] = (GtkWidget *(*)[4])info;
然后您可以使用 elementos[0][0]
访问二维数组。
关于c - 将二维数组传递给 C 中的 GTK 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23531681/