我是一名学生程序员,我正在使用 Qt 构建一个 GUI 应用程序。我正在尝试确保选中某些复选框才能继续。这些复选框启用或禁用组框本身,并且是 QGroupBox 类的一部分。接受的组合可以是其中之一或两者。我遇到的问题是从 QGroupBox 成员函数 QGroupBox::setChecked(bool) 获取布尔值(至少我认为是这样)并使用它来确定是否显示错误消息。我尝试了几种方法并参考 Qts 文档,希望能找到一个很好的例子。因为我尝试使用的 QGroupBox 是我的 ui 类的成员,所以我尝试创建 QGroupBox 的新实例并将其设置为 ui 的值。然后; 使用 if 语句,找出这些框是否被选中。这里'
QGroupBox activeParticleInjection = ui->groupBoxParticleInjection;
QGroupBox activeFluidInjection = ui->groupBoxFluidInjection;
if (activeParticleInjection::setChecked(false) && activeFluidInjection(false));
{
QMessageBox noInjectionSelectedError;
noInjectionSelectedError.setText("Error: No injection type selected");
noInjectionSelectedError.exec();
}
else
{
transData.particleInjectionActive = activeParticleInjection::setChecked();
transData.fluidInjectionActive = activeFluidInjection::setChecked();
这不起作用;从我尝试将 Ui 属性传递给 QGroupBox 的新实例的方式开始。我知道这是一个相对通用的问题,但我尝试直接传递 ui 复选框,这导致了更多问题。我浏览了文档,这让我知道了我试图做到的方式;没有运气。我希望对处理 QGroupBox 的更好方法有一些反馈。作为一名学生,有时很难找到答案,尤其是在与 QT 中的独特成员打交道时。
在更改之前,我使用这种方法来构建这个过程;我收到了关于我的 if 参数设置方式的错误。编译错误是:没有匹配函数调用 'QGroupBox::isChecked(bool)'
if (ui->groupBoxFluidInjection->isChecked(false) && ui->groupBoxParticleInjection->isChecked(false));
{
QMessageBox noInjectionSelectedError;
noInjectionSelectedError.setText("Error: No injection type selected");
noInjectionSelectedError.exec();
}
else
{
transData.particleInjectionActive = ui->groupBoxParticleInjection->isChecked();
transData.fluidInjectionActive = ui->groupBoxFluidInjection->isChecked();
}