我正在使用Glade3和我自己的主C文件从头开始创建gtk2应用程序。
情景是这样的。 有3个旋转按钮的集合。当旋转按钮1或2中的值发生变化时,我需要实时更改第3个旋转按钮的值。
使用Glade3我已经制作了3个旋转按钮,我知道如何使用以下处理程序更改值。
void value_calc(GtkSpinButton *o, gpointer d)
{
gdouble x = gtk_spin_button_get_value (o);
printf("spin-button1-vlaue: %f\n", x);
}
我将第一个旋转按钮的“更改值”信号与上面的value_calc
处理程序连接起来。它已成功打印更改的值。
我对第二个旋转按钮做了同样的事情。
我有两个值,现在我需要更新第3个旋转按钮的值。
void set_values (gdouble value_to_be_added)
{
GtkSpinButton *spinbuton_3;
gtk_spin_button_set_value (spinbuton_3, value_to_be_added);
}
编译时没有错误和警告。但是当运行程序并更改旋转按钮的值时,会向命令行抛出一些错误。
Gtk-CRITICAL **: IA__gtk_spin_button_set_value: assertion 'GTK_IS_SPIN_BUTTON (spin_button)' failed
此外,它不会执行所需的操作。