GTK +在变量中存储实例

时间:2013-05-23 20:22:12

标签: c++ class gtk gtk#

我有一个名为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

并尝试访问应该是条目的sample属性,但它失败了。 (我可以访问所有其他非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
}

我不知道为什么会这样。

0 个答案:

没有答案