1

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

4

1 に答える 1