私はプログラムのスロットに値としてenumを渡そうとしていますが、いくつか問題があります。私のヘッダファイルでは、私は、列挙型を作成しました:パラメータとしてenumを持つQtシグナル
Q_ENUMS(button_type);
enum button_type {button_back, button_up, button_down, button_ok};
Q_DECLARE_METATYPE(button_type);
をそして、私の.cppファイルに私がスロットにそれを渡すようにしようとしている:
QObject::connect(buttons->ui.pushButton_back, SIGNAL(clicked()), this, SLOT(input_handler(button_back)));
しかし、私は、コードをコンパイルするときに私が取得します:
Object::connect: No such slot main_application::input_handler(button_back) in main_application.cpp:44
Object::connect: (sender name: 'pushButton_back')
Object::connect: (receiver name: 'main_applicationClass')
引数をinput_handlerに渡さないとコンパイルされて正常に動作します。
私はqRegisterMetaTypeを呼び出す必要があることも読んでいますが、正しい構文が得られないようです。
qRegisterMetaType<button_type>("button_type");
が、私はこのエラーを取得する:ここでは、私が試したものだ
main_application.h:15:1: error: specializing member ‘::qRegisterMetaType<button_type>’ requires ‘template<>’ syntax
誰も私のために、この上でいくつかの光を当てることができますか?
ありがとうございます!
マーロン
この「専門会員」のエラーはありません...? – Smar