Tôi có thể giải quyết axxess với "được bảo vệ " sự vật ?

lập trình


Tôi đang cố gắng xác định “người gửi” của chức năng “kết nối” Qt.

các

int i = RXobject->senderSignalIndex();

có vẻ là một cách hay để hoàn thành nhiệm vụ của tôi, nhưng…

Tôi nhận được thành viên “được bảo vệ” và không biết phải tiếp tục như thế nào…

Vui lòng bỏ qua mã không liên quan, đây là “đang được xây dựng”
và tôi đang đặt câu hỏi về C++, không liên quan gì đến 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;
        ^

Những gì tôi đã thử:

Yêu cầu bà Google cung cấp ví dụ về “người gửi

” cách sử dụng… không may mắn

Giải pháp 1

Nếu tôi hiểu bạn đang cố gắng làm gì thì bạn không “giải quyết” phương pháp đó. Các thành viên được bảo vệ của một lớp chỉ có thể truy cập được từ chính mã lớp đó hoặc từ những người kế thừa của lớp mà tôi nghĩ là QObject.

コメント

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