我有一个名为 Joint 的类,它有很多属性,我只包含了构造函数和类的一部分。
class Joint {
public:
...
GtkEntry * sample;
...
Joint (GtkEntry * PositionEntry, GtkEntry * VelocityEntry, GtkEntry * EffortEntry, GtkWidget * b, float X, float Y,float ENABLED,float TSX, float TSY,float TX, float TY, float FROMLINEX, float TOLINEX, float R, float G, float B, float A, float STATE, float PARENT, float CHILDREN, float VISIBLE, float TIMEREFRESHED,char* desc,char code) {
...
sample = PositionEntry;
...
}
};
当我创建一个实例
Joint theJoint = joint_data[joint] //Joint_data is a table of instances with assigned properties
并尝试访问应该是条目的示例属性,它失败了。(我可以访问所有其他非 GTK 属性)
gtk_entry_set_text(theJoint.sample,"Test"); //Doesn't work
请注意,如果我尝试使用全局实例调用该输入框,它可以正常工作
gtk_entry_set_text(PositionEntry,"Test"); // works
有任何想法吗?
非常感谢。
更新:
void handleClickedJoint(int joint)
{
GtkEntry * entries[2] = {entry3, entry4};
gtk_entry_set_text(entries[0],"hello:"); //Sets it successfully
gtk_entry_set_text(entry4,"hello: 2"); //Sets it succesfully
}
这非常有效,但是当我将数组定义移到函数之外时,它返回上面提到的相同错误:
GtkEntry * entries[2] = {entry3, entry4};
void handleClickedJoint(int joint)
{
gtk_entry_set_text(entries[0],"hello:"); //Returns error, fails
gtk_entry_set_text(entry4,"hello: 2"); //Successfully set
}
我不知道为什么会这样。