我用:
UI-> Combobox-> setCurrentIndex(1);
但该指令不会调用函数
void on_comboBox_currentIndexChanged(const QString& arg1);
为什么会出现这种情况?
void ConsigneMouvement::show(int AxeType)
{
axeType = AxeType;
switch(axeType)
{
case 1:
ui->comboBox->setCurrentIndex(0);
ui->comboBox->setEnabled(true);
break;
case 2 :
ui->comboBox->setCurrentIndex(1);
ui->comboBox->setEnabled(false);
break;
case 3 :
ui->comboBox->setCurrentIndex(0);
ui->comboBox->setEnabled(true);
break;
case 4 :
ui->comboBox->setCurrentIndex(0);
ui->comboBox->setEnabled(true);
break;
}
this->exec();
}
和功能
void ConsigneMouvement::on_comboBox_currentIndexChanged(const QString &arg1)
{
if(arg1 == "Absolu")
ui->label_distance->setText(tr("Position"));
else
ui->label_distance->setText(tr("Distance"));
}
答案 0 :(得分:1)
setCurrentIndex()不会发出currentIndexChanged()信号。这意味着在您的示例中,上一个索引已经是1。
答案 1 :(得分:0)
插槽很可能没有自动连接,因为你在一个地方写了 comboBox 而在另一个地方写了 Combobox ,所以试试:
void on_Combobox_currentIndexChanged(const QString &arg1);
//你需要在构建之前运行qmake
LE:我建议避免使用自动连接功能并自己编写连接语句(您需要注意避免命名像on_WIDGETNAME_SIGNALNAME这样的插槽,因为最终可能会使用两次调用的插槽)