0

私が使う :

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")); 
}
4

2 に答える 2

1

setCurrentIndex() は、実際に変更されていない場合、 currentIndexChanged() シグナルを発行しません。あなたの例では、前のインデックスがすでに 1 だったことを意味します。

于 2014-08-20T14:23:20.157 に答える