2

C++ コードからボタン クリックをシミュレートする必要があります。これまでに次のコードを記述しました

/*
 * signalhandler.hpp
 *
 *  Created on: Nov 14, 2013
 *      Author: fnazeem
 */

#ifndef SIGNALHANDLER_HPP_
#define SIGNALHANDLER_HPP_

#include <QObject>



namespace bb
{
    namespace cascades
    {
        class Button;
    }
}

class signalhandler : public QObject
{
    Q_OBJECT

public:
    signalhandler();

public slots:
    void onClicked(bb::cascades::Button *button);



};


#endif /* SIGNALHANDLER_HPP_ */

これまでのsignalhandler.cppで、これは私が書いたものです。特定のボタンのアドレスがあり、手動でクリックせずにそのボタンの「クリックされた」信号を発信したいとします。

/*
 * signalhandler.cpp
 *
 *  Created on: Nov 14, 2013
 *      Author: fnazeem
 */


#include "signalhandler.hpp"
#include <bb/cascades/Button>



void signalhandler::onClicked(bb::cascades::Button *button){



    emit button->clicked();

}

プロジェクトをビルドすると、エラーが発生しますemit button->clicked();

これがエラーです

C:/bbndk/target_10_1_0_1020/qnx6/usr/include/bb/cascades/controls/abstractbutton.h:60:14: エラー: 'void bb::cascades::AbstractButton::clicked()' は保護されています

clicked は保護されたメソッドであると書かれています。この問題を解決して目標を達成するための回避策はありますか?

4

3 に答える 3

0
void QAbstractButton::click () [slot]

あなたのために仕事をするべきです。clicked()ボタンのクリック動作と組み合わされたすべての機能と同様に信号を送信します

signalhandlerおそらくこの事実のために、クラスを作成する必要はありません。

乾杯

于 2013-11-14T09:06:10.870 に答える
0

変化する

emit button->clicked();

emit button->click();
于 2014-07-31T16:20:56.480 に答える