我正在对弹丸进行弹道计算。 所以我有一个复选框,基于复选框我必须输入 即如果启用了复选框,则从double-spinbox读取值并进行弹道计算
否则按双旋转框的默认值为我编写此代码,但我最终在setValue()
中出错
所以对于我的要求wt方法我应该采取。
if(ui->checkBox->isChecked())
{
//if it is checked then take the values given on UI
altitude= ui-doubleSpinBox_1>text();
b_pressure= ui-doubleSpinBox_2>text();
r_humidity= ui-doubleSpinBox_3>text();
temp= ui-doubleSpinBox_4>text();
}
else
{
///else take the default values
altitude=ui-doubleSpinBox_1>setValue(0);
b_pressure=ui-doubleSpinBox_2>setValue(29.53);
r_humidity=ui-doubleSpinBox_3>setValue(0.78);
temp=ui-doubleSpinBox_4>setValue(78);
}
答案 0 :(得分:1)
QDoubleSpinBox::setValue
返回void类型的(缺少)值,对此没有任何转换。您正在尝试分配给(double?)变量,编译器告诉您这是不可能的。
相反,您应该有条件地设置默认值,然后无条件地读取值。这使(禁用?)ui保持最新状态。
if(!ui->checkBox->isChecked())
{
// set the default values
ui->doubleSpinBox_1->setValue(0);
ui->doubleSpinBox_2->setValue(29.53);
ui->doubleSpinBox_3->setValue(0.78);
ui->doubleSpinBox_4->setValue(78);
}
altitude = ui->doubleSpinBox_1->value();
b_pressure = ui->doubleSpinBox_2->value();
r_humidity = ui->doubleSpinBox_3->value();
temp = ui->doubleSpinBox_4->value();
或者,您可以使用默认值有条件地设置变量,并无条件地从变量设置UI
if(!ui->checkBox->isChecked())
{
// set the default values
altitude = 0;
b_pressure = 29.53;
r_humidity = 0.78;
temp = 78;
}
ui->doubleSpinBox_1->setValue(altitude);
ui->doubleSpinBox_2->setValue(b_pressure);
ui->doubleSpinBox_3->setValue(r_humidity);
ui->doubleSpinBox_4->setValue(temp);