Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Larry от Февраль 11, 2018, 21:49



Название: [РЕШЕНО]Изменение значения по указателю
Отправлено: Larry от Февраль 11, 2018, 21:49
Добрый вечер, форумчане.
Есть следующий метод:
Код:
bool CWindow::currentWidget(QTableWidget* table)
{
    int  index  = ui->stwgtMain->currentIndex();
    bool result = false;

    switch(index)
    {
        case 0:
            table   = ui->tablewgt1;
            result  = true;
        break;

        case 1:
            table   = ui->tablewgt2;
            result  = true;
        break;

        case 2:
            table   = ui->tablewgt3;
            result  = true;
        break;

        case 3:
            table   = ui->tablewgt4;
            result  = true;
        break;

        default:
            table   = nullptr;
            result  = false;
        break;
    };

    return result;
}

На форме есть QStackWidget и на страница расположены таблицы QTableWidget. Этот метод должен возвращать указатель в table на текущую таблицу, но возвращает постоянно 0.
Пните, плиз в правильном направлении...Почему возвращает все время 0? Проверял в отладке, то все присваивается...


Название: Re: Изменение значения по указателю
Отправлено: Swa от Февраль 11, 2018, 22:15
Потому что вы ничего не передаете наружу. Переменная table существует только внутри метода. Когда метод завершается, она удаляется.
Если вам нужно внутри метода изменить данные по указателю, то нужно передать в метод либо указатель на указатель, либо ссылку на указатель.


Название: Re: Изменение значения по указателю
Отправлено: Larry от Февраль 11, 2018, 22:30
Понял, спасибо большое.
Заработало.