¿Cómo resuelvo axxess? "protegido " objeto ?

programación


Estoy intentando identificar el “remitente” de la función “conectar” de Qt.

el

int i = RXobject->senderSignalIndex();

Parece una buena manera de realizar mi tarea, pero…

Me sale el miembro “protegido” y no se como proceder…

Ignore el código irrelevante, esto está “en construcción”.
y estoy haciendo una pregunta sobre C++, nada que ver con 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;
        ^

Lo que he probado:

Pídale a la Sra. Google que proporcione un ejemplo de “remitente

“uso… no hubo suerte

Solución 1

Si entiendo lo que intentas hacer, no “resuelvas” ese método. Solo se puede acceder a los miembros protegidos de una clase desde el código de la clase o desde los herederos de la clase, que creo que es QObject.

コメント

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