Squish:枚举作为函数参数
Squish: Enum as function parameter
有人知道在 C++ 函数中使用枚举作为函数参数并使用 squish 调用它们的变通方法吗?
Enum 在另一个 class 和命名空间中声明为函数本身。
以下代码正在使用并在 qt 中工作:
枚举-class:
namespace prem {
namespace space {
class Controller : public QObject {
Q_OBJECT
Q_ENUMS(ID)
public:
enum ID { ONE, TWO, THREE };
//.... other Stuff
};
}
}
使用class:
namespace prem {
namespace area {
class Handler: public QObject {
//...... some stuff
public slot:
void slotHandelID(prem::space::Controller::ID id) {
// do some stuff
}
};
}
}
现在我想在 python 测试脚本中调用 slotHandelID 函数。
controller = findObject("m_controller")
handler = findObject("m_handler")
handler.slotHandelID(controller.ONE)
但我明白了
SyntaxError: No matching 'slotHandelID(int)' overload found: Following overloads are available:
prem::area::Handler::slotHandelID(undefined)
当我在 Controller
class 中定义 slotHandelID(prem::space::Controller::ID id)
时,代码工作正常。
该错误已在新的 squish 6.0 版本中修复。
有人知道在 C++ 函数中使用枚举作为函数参数并使用 squish 调用它们的变通方法吗? Enum 在另一个 class 和命名空间中声明为函数本身。 以下代码正在使用并在 qt 中工作:
枚举-class:
namespace prem {
namespace space {
class Controller : public QObject {
Q_OBJECT
Q_ENUMS(ID)
public:
enum ID { ONE, TWO, THREE };
//.... other Stuff
};
}
}
使用class:
namespace prem {
namespace area {
class Handler: public QObject {
//...... some stuff
public slot:
void slotHandelID(prem::space::Controller::ID id) {
// do some stuff
}
};
}
}
现在我想在 python 测试脚本中调用 slotHandelID 函数。
controller = findObject("m_controller")
handler = findObject("m_handler")
handler.slotHandelID(controller.ONE)
但我明白了
SyntaxError: No matching 'slotHandelID(int)' overload found: Following overloads are available:
prem::area::Handler::slotHandelID(undefined)
当我在 Controller
class 中定义 slotHandelID(prem::space::Controller::ID id)
时,代码工作正常。
该错误已在新的 squish 6.0 版本中修复。