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()
在lineEdit
窗口小部件中返回0。
答案 0 :(得分:0)
为什么不在主窗口中使用成员变量?只需在头文件中声明它们并在cpp中初始化。
// your header file
QString m_server_str;
QString m_port_str;
QString m_userdb_str;
QString m_passworddb_str;
当您切换QStackedWidget的页面时,您会阅读编辑内容并将其保存到您的成员变量中。只需使用与您相同的信号:QStackedWidget::currentChanged ( int index )
答案 1 :(得分:0)
一位朋友告诉我,当我更改索引页面时,我正在填充inputs
变量,当然,lineEdit
小部件当时是空的。解决方案非常简单,首先,我避免使用getInputs(int )
槽,而在替代方案中我做到了这一点:
ui->comboBox->addItem(ui->serverEdit->text());
ui->comboBox->addItem(ui->portEdit->text());
ui->comboBox->addItem(ui->userDbEdit->text());
// ... etc