c - 将二维数组传递给 C 中的 GTK 函数

标签 c arrays gtk arguments

我尝试将二维数组作为参数传递给 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 时,你将它转换为一个 gpointervoid * 的 typedef,然后在回调函数中,您应该将 gpointer 转换回指向 4 GtkWidget *< 的数组的指针 像这样:

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

然后您可以使用 elementos[0][0] 访问二维数组。

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

相关文章:

c - 如何 'clear'一个字符串数组?

c - 如何将流转换为字符串以写入 C 中的日志文件?

mysql - 显示数组时出错

c# - C# 中的音频捕获

java - 有什么办法可以简化这个流表达式吗?

C 在另一个线程中运行函数

c - 尝试从用户读取输入整数,不想接受 C 中的字符

c - 读取文件时如何更改数组值

Java 中的 GTK 使用 Windows

java - 如何通过 session 维护应用程序的几何形状、大小(包括子窗口小部件)