如何使用“foreach”循环遍历整个“父”树?

问题描述 投票:0回答:1
Here is a full , debug, output.

我的任务是访问突出显示的“孩子”之一。

我可以访问“this”指针,并且我相信我应该迭代“父”对象来完成我的任务。 我知道如何编码/使用“foreach”循环通过一个“父”(指针),我确实需要帮助 C++ 编码“foreach”以循环遍历“this”树中的所有“父”对象。

Locals      
        index   1   int
        mainWindow  0x0 MainWindow_Bluetooth*
        test    " TEST SettingsDialog Constructor (emit index 1 ) " QString
        this    "SettingsDialog"    SettingsDialog
            [QDialog]   "SettingsDialog"    QDialog
            [d] @0x555555d8ab80 QDialogPrivate
            [parent]    @0x555555dda550 QMdiSubWindow
                [QWidget]   @0x555555dda550 QWidget
                [d] @0x555555d7b9d0 QMdiSubWindowPrivate
                [parent]    @0x555555c2c790 QWidget
                    [QObject]   @0x555555c2c790 QObject
                    [QPaintDevice]  @0x555555c2c7a0 QPaintDevice
                    [d] @0x555555c2c7d0 QWidgetPrivate
                    [parent]    @0x555555c5ec90 QMdiArea
                        [QAbstractScrollArea]   @0x555555c5ec90 QAbstractScrollArea
                        [d] @0x5555558c04f0 QMdiAreaPrivate
                        [parent]    "MainWindow_Bluetooth"  MainWindow_Bluetooth
                            [QMainWindow]   "MainWindow_Bluetooth"  QMainWindow
                            [d] @0x555555c2a630 QMainWindowPrivate
                            [parent]    @0x555555ce30c0 QMdiSubWindow
                            **[children]    <35 items>  **QList<QObject*>
                            [properties]    <at least 0 items>  
                            [methods]   <20 items>  
                            [extra]     
                            Menu_Index  0   int
                            command 0x0 char*
                            index   8   int
                            index_sub   0   int
                            list_array  @0x555555bcda90 QStringList[10]
                            m_TAB_CommonDebug   "A_BT_TAB_DIALOG"   A_BT_TAB_DIALOG
                            m_TAB_Connect   0x0 A_BT_TAB_DIALOG*
                            m_TAB_Ext   0x0 A_BT_TAB_DIALOG_EXT*
                            m_console   @0x555555c2ce00 Console
                            m_mdiarea   @0x555555c5ec90 QMdiArea
                            m_serial    @0x55555566b480 QSerialPort
                            m_settings  "SettingsDialog"    SettingsDialog
                            m_settings_RFcomm   0x0 SettingsDialog_RFcomm*
                            m_status    @0x555555c5edb0 QLabel
                            m_ui    @0x555555669da0 Ui::MainWindow_Bluetooth
                            mainAction  @0x555555bcdbe8 QAction*[16]
                            result  ""  QString
                            subAction   @0x555555bcdae8 QAction*[16]
                            subMenu @0x555555bcdb68 QMenu*[16]
                            text    "   Parent console (case 7) "   QString
                            verify  @0x555555bcdc90 QStringList[16]
                        [children]  <3 items>   QList<QObject*>
                        [properties]    <at least 8 items>  
                        [methods]   <14 items>  
                        [extra]     
                    [children]  <6 items>   QList<QObject*>
                    [properties]    <at least 59 items> 
                    [methods]   <27 items>  
                    [extra]     
                    data    @0x555555c2c8f0 QWidgetData
                [children]  <4 items>   QList<QObject*>
                [properties]    <at least 2 items>  
                [methods]   <7 items>   
                [extra]     
            [children]  <8 items>   QList<QObject*>
            [properties]    <at least 0 items>  
            [methods]   <8 items>   
            [extra]     
            ConnectIndex    1   int
            ConnectText " TEST SettingsDialog Constructor (emit index 1 ) " QString
            m_TAB_CommonDebug   0x0 A_BT_TAB_DIALOG*
            m_TAB_Connect   "A_BT_TAB_DIALOG"   A_BT_TAB_DIALOG
            m_TAB_Ext   "A_BT_TAB_DIALOG_EXT"   A_BT_TAB_DIALOG_EXT
            m_currentSettings   @0x555555d63cd0 SettingsDialog::Settings
            m_intValidator  @0x555555dbe390 QIntValidator
            m_status    @0x555555dbdcc0 QLabel
            m_ui    @0x555555d751b0 Ui::SettingsDialog
            pTAB    "A_BT_TAB_DIALOG"   A_BT_TAB_DIALOG
            staticMetaObject    @0x7ffff7f03620 QMetaObject
            statusBar   @0x555555dcf6a0 QStatusBar
            text    "\n\t  #ifdef APPLY_CONNECT \n\tTRACE SettingsDialog::processAction(int  index) ...  int SettingsDialog::processAction(int, QString)403 \nindex 1\t Test message \n TEST SettingsDialog Constructor (emit index 1 ) "   QString
    Inspector       
    Expressions     
        "(?<=\thci0 <no such value>  
        //                                subMenu[index] = subMenu[index]
//                                        ->addMenu(list[index] +         
        SERIAL_SETUP        
        SetupRun        
        endif
                    
                    //                    //subtempmenu = new QMenu();
                    //      
        m_ui->actionConnect     
        processAction       
        qDebug().noquote() << text;     
    Return Value        
    Tooltip     

正如我所说,我知道如何在单亲“父母”中执行“foreach”。 也许我需要嵌套的“foreach”循环? 如果是这样 - 怎么办?

PS 我不是机器人,我不会回复人工智能生成的评论。

c++
1个回答
0
投票

这是我的单阶段“foreach”代码

    // iterate  parent until correct object is found or until  action match is found
QList<QObject*> pList =this->parent()->children();
foreach (auto item,pList)
{
    text = " iterate parent(s) "; // test ;
    qDebug().noquote() << text;
    text = item->objectName();  parent child 
    qDebug().noquote() << text;
}

需要扩展整个树

任何人??

PS 我会破例回复那些说我需要知道树的深度的人。不,这就是“foreach”的作用。

© www.soinside.com 2019 - 2024. All rights reserved.