【Qt】ラジオボタンと条件文の復習


復習

前回はコンボボックスを使い、計算内容の切り替え機能を実装しました(前回の記事)。今回からコンボボックスの設定変更に伴う表示系の変更部分を作っていきます。まずは距離速度時間モードの単位変更を行います。オームの法則単位表示変更で作ったラジオボタンを活用していきます(詳しくはこちらを参照)。
 仕様はラジオボタンがキロ、ノーマル、ミリの切り替え用となるので距離と速度の単位を変更対象とし、ラジオボタンのクリックイベント内で条件文による計算モードの判定、その結果にあった単位を表示させます。条件文についてはこちらを参照してください。
 mainwindow.cppに以下コードを記載します。

コード

void MainWindow::on_rB_k_clicked(bool checked)
{
    if(checked==true)  //キロに変換
    {
        switch (_idxPsy)
        {
        case 0:
            ui->lE_E->setText(QString::number(_E/1000));
            ui->lE_R->setText(QString::number(_R/1000));
            ui->lE_I->setText(QString::number(_I/1000));
            ui->lbl_unitE->setText("kV");
            ui->lbl_unitR->setText("kΩ");
            ui->lbl_unitI->setText("kA");
            break;

        case 1:
            ui->lE_E->setText(QString::number(_E/1000));
            ui->lE_R->setText(QString::number(_R/1000));
            ui->lE_I->setText(QString::number(_I));
            ui->lbl_unitE->setText("km");
            ui->lbl_unitR->setText("km/s");
            ui->lbl_unitI->setText("s");
            break;
        }
    }
}

void MainWindow::on_rB_normal_clicked(bool checked)
{
     if(checked==true)  //normalに変換
     {
         switch(_idxPsy)
         {
         case 0:
             ui->lE_E->setText(QString::number(_E));
             ui->lE_R->setText(QString::number(_R));
             ui->lE_I->setText(QString::number(_I));
             ui->lbl_unitE->setText("V");
             ui->lbl_unitR->setText("Ω");
             ui->lbl_unitI->setText("A");
             break;

         case 1:
             ui->lE_E->setText(QString::number(_E));
             ui->lE_R->setText(QString::number(_R));
             ui->lE_I->setText(QString::number(_I));
             ui->lbl_unitE->setText("m");
             ui->lbl_unitR->setText("m/s");
             ui->lbl_unitI->setText("s");
             break;
         }
     }
}

void MainWindow::on_rB_m_clicked(bool checked)
{
    if(checked==true)  //ミリに変換
    {
        switch(_idxPsy)
        {
        case 0:
            ui->lE_E->setText(QString::number(_E*1000));
            ui->lE_R->setText(QString::number(_R*1000));
            ui->lE_I->setText(QString::number(_I*1000));
            ui->lbl_unitE->setText("mV");
            ui->lbl_unitR->setText("mΩ");
            ui->lbl_unitI->setText("mA");
            break;

        case 1:
            ui->lE_E->setText(QString::number(_E*1000));
            ui->lE_R->setText(QString::number(_R*1000));
            ui->lE_I->setText(QString::number(_I));
            ui->lbl_unitE->setText("mm");
            ui->lbl_unitR->setText("mm/s");
            ui->lbl_unitI->setText("s");
            break;
        }
    }
}

 実行し、コンボボックスを距離速度時間モードに変更後ラジオボタンを切り替えると、距離と速度のメートル単位が変更されたと思います。
 今回はラジオボタンと条件文について復習しました。GUI開発で何度も何度も使う内容なので何度も記載していきたいと思います。ということで次回も時間の単位を、h(時間)、m(分)、s(秒)と切り替える機能を実装します。


コメントを残す