作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法通过旋转按钮传递多个值
我尝试用一个按钮进行许多回调,但是我需要同时接收和操作许多变量。
gint grab_int_value (GtkSpinButton *spinbutton, gpointer user_data)
{
gint steps = gtk_spin_button_get_value_as_int (user_data);
printf ("The value of the step is: %d ms.\n", steps);
}
done = gtk_button_new_with_mnemonic("_DONE");
g_signal_connect(done, "clicked", G_CALLBACK(grab_int_value),
spin_button1);
g_signal_connect(done, "clicked", G_CALLBACK(grab_int_value),
spin_button2);
最佳答案
创建一个struct
并带有指向您需要在回调中操作的所有对象的指针,并添加一个指向该对象的指针作为用户数据:
typedef struct {
GtkWidget *spin_button1;
GtkWidget *spin_button2;
} Widgets;
...
Widgets* w = g_new(Widgets, 1);
w->spin_button1 = spin_button1;
w->spin_button2 = spin_button2;
...
g_signal_connect(done, "clicked", G_CALLBACK(grab_int_value), w);
g_signal_connect(done, "clicked", G_CALLBACK(grab_int_value), w);
...
int grab_int_value(GtkSpinButton *spinbutton, gpointer user_data) {
Widgets *w = (Widgets *) user_data;
int steps = gtk_spin_button_get_value_as_int(w->spin_button1);
...
}
关于c - 如何将多个旋转按钮值传递给函数?(GTK/C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53440668/
我是一名优秀的程序员,十分优秀!