Comment puis-je résoudre axxess pour "protégé " objet ?

la programmation


J’essaie d’identifier “l’expéditeur” de la fonction “connect” de Qt.

le

int i = RXobject->senderSignalIndex();

cela semble être un bon moyen d’accomplir ma tâche, mais…

Je reçois le membre “protégé” et je ne sais pas comment procéder…

Veuillez ignorer le code non pertinent, il est “en construction”
et je pose une question C++, rien à voir avec Qt.

C++
void   MainWindow_Bluetooth::processMenu(int index_submenu, int index_mainmenu)
{
#ifdef LAMBDA
    text = "TASK DEBUG connect... "; //connect
    text += Q_FUNC_INFO;
    text += QString::number(__LINE__);
    // move index to class !!!
    text += " main loop index_main ";
    text += QString::number(index_mainmenu);
    text += " embeded loop  index_sub ";
    text += QString::number(index_submenu);
    text += " main loop class passed index ";
    text += QString::number(index);
    qDebug() << text;
#endif
    {// analyze indexes received block
        QString text;
        QObject *RXobject = sender();
        RXobject->dumpObjectInfo();
        QObjectList children = RXobject->children();
       //; text = RXobject->children().at(0);
        //QObjectList *RXChildren = RXobject->children();
        //QObject *RXparent = RXobject->parent();
        //QObject *TEST_parent = RXparent->parent();

        // protected member ???
int i = RXobject->senderSignalIndex();


//int SenderIndex = RXobject::​senderSignalIndex();

        //text = RXobject->dumpObjectInfo();

        text = Q_FUNC_INFO;
        qDebug() << text;

/mnt/A_BT_DEC10/BT__PROGRAMS/A_JAN11/A_BT_LIBRARY/terminal_Bluetooth/mainwindow_Bluetooth_copy.cpp:3890: error: 'senderSignalIndex' is a protected member of 'QObject'
mainwindow_Bluetooth_copy.cpp:3890:19: error: 'senderSignalIndex' is a protected member of 'QObject'
int i = RXobject->senderSignalIndex();
                  ^
/home/nov25-1/Qt/5.15.2/gcc_64/include/QtCore/qobject.h:435:9: note: can only access this member on an object of type 'MainWindow_Bluetooth'
    int senderSignalIndex() const;
        ^

Ce que j’ai essayé :

Demandez à Mme Google de fournir un exemple de “expéditeur

“utilisation… pas de chance

Solution 1

Si je comprends ce que vous essayez de faire, vous ne « résolvez » pas cette méthode. Les membres protégés d’une classe ne sont accessibles qu’à partir du code de classe lui-même ou des héritiers de la classe, qui, je pense, sont QObject.

コメント

タイトルとURLをコピーしました