मैं इसका समाधान कैसे करूँ? "संरक्षित " वस्तु ?

प्रोग्रामिंग


मैं Qt “कनेक्ट” फ़ंक्शन के “प्रेषक” की पहचान करने का प्रयास कर रहा हूं।

int i = RXobject->senderSignalIndex();

यह मेरे कार्य को पूरा करने का एक अच्छा तरीका प्रतीत होता है, लेकिन…

मुझे “संरक्षित” सदस्य मिला है और मैं नहीं जानता कि कैसे आगे बढ़ूं…

कृपया अप्रासंगिक कोड को अनदेखा करें, यह “निर्माणाधीन” है
और मैं C++ प्रश्न पूछ रहा हूं, Qt से इसका कोई लेना-देना नहीं है।

सी++
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;
        ^

मैंने क्या प्रयास किया है:

श्रीमती गूगल से “प्रेषक” का उदाहरण प्रदान करने के लिए कहें

“उपयोग… कोई भाग्य नहीं

समाधान 1

यदि मैं समझता हूं कि आप क्या करने का प्रयास कर रहे हैं, तो आप उस विधि को “समाधान” नहीं करते हैं। किसी क्लास के संरक्षित सदस्य केवल क्लास कोड से या क्लास के इनहेरिटर्स से ही पहुंच योग्य होते हैं, जो मुझे लगता है कि QObject है।

コメント

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