enumをc ++関数の関数パラメーターとして使用し、squishで関数を呼び出すための回避策を知っている人はいますか? Enum は、関数自体として他のクラスおよび名前空間で宣言されました。次のコードが使用されており、qt で動作します。
列挙型クラス:
namespace prem {
namespace space {
class Controller : public QObject {
Q_OBJECT
Q_ENUMS(ID)
public:
enum ID { ONE, TWO, THREE };
//.... other Stuff
};
}
}
クラスの使用:
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)
クラスで を定義すると、コードは正常に機能しslotHandelID(prem::space::Controller::ID id)
ます。Controller