Совместное использование переменных на страницах QStackedWidget - PullRequest
0 голосов
/ 09 мая 2011

У меня есть StackedWidget с 3 страницами, каждая страница содержит 3 lineEdit, теперь на каждой странице, которую я пропускаю, я хочу сохранить содержимое этого 3 lineEdit в переменную, чтобы потом иметь возможность обрабатывать его. У меня есть этот кусок кода:

connect(ui->stackedWidget, SIGNAL(currentChanged(int)), this, SLOT(getInputs(int)));

И слот:

void ConfSetup::getInputs(int index)
{
    QString para;

    switch(index)
     {
        case 1:
            ui->backButton0->setEnabled(false);
        break;

        case 2:
            inputs << ui->serverEdit->text();
            inputs << ui->portEdit->text();
        break;

        case 3:
            inputs << ui->userDbEdit->text();
            inputs << ui->passwordDbEdit->text();
        break;

        case 6:
            foreach(para, inputs)
               ui->comboBox->addItem(para);
            //ui->lineEdit->setText(QString::number(para.length()));
        break;

        default:
            ui->backButton0->setEnabled(true);
        break;
     }
}

Виджет comboBox теперь должен содержать 4 значения, а не пустой текст, а также para.length() возвращать 0 в lineEdit виджете.

Ответы [ 2 ]

0 голосов
/ 13 мая 2011

Друг сказал мне, что я заполняю переменную inputs, когда меняю индексную страницу, то есть, конечно, виджеты lineEdit в это время пусты.Решение очень простое, во-первых, я избегаю слота getInputs(int ), и в замен я делаю это:

ui->comboBox->addItem(ui->serverEdit->text());
ui->comboBox->addItem(ui->portEdit->text());
ui->comboBox->addItem(ui->userDbEdit->text());
// ... etc
0 голосов
/ 09 мая 2011

Почему вы не используете переменные-члены в главном окне?Просто объявите их в своем заголовочном файле и инициализируйте в своем cpp.

// your header file
QString m_server_str;
QString m_port_str;
QString m_userdb_str;
QString m_passworddb_str;

И при переключении страницы вашего QStackedWidget вы читаете содержимое правок и сохраняете их в своей переменной member.Просто используйте тот же сигнал, что и вы: QStackedWidget::currentChanged ( int index )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...