我如何做if(2个变量)?

时间:2011-07-24 11:43:23

标签: c++ qt qt4

我是Qt / C ++的初学者,所以当我从一些教程中学习时,我想做一些除了教程之外的其他内容,但并不确切知道如何。

这是代码,我正在使用http://pastebin.com/x612nAPV

#include "dialog.h"
#include "ui_dialog.h"
#include <QtGui>
#include <QMessageBox>
#include <QString>
 
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    //ui->checkBox->setChecked(true);
 
}
 
Dialog::~Dialog()
{
    delete ui;
}
 
void Dialog::on_pushButton_clicked()
{
 
    if(ui->checkBox->isChecked())
    {
        QMessageBox::information(this,"Result","Cool another Male !");
    }
 
    if(ui->checkBox_2->isChecked())
    {
        QMessageBox::information(this,"Result", "Yay a female");
    }
}

我想要做的是制作包含2个变量的第三个if(),这样做 在这种情况下,如果没有选中复选框来显示消息,但我不知道如何在qt里面使用2个变量if if

喜欢

if(2variableshere)
  {
     Do...
  }

4 个答案:

答案 0 :(得分:11)

要创建需要两个值为true的if语句,请将它们与运算符&&合并:

if (a && b) {
// if a and b are true

要确定某个值是否为false,请使用 not 运算符!

if (!a) {
// if a is false

使用此逻辑,您可以创建此语句,检查是否未检查这两个值。

if (!ui->checkBox_1->isChecked() && !ui->checkBox_2->isChecked()) {
// if box 1 isn't checked and box 2 isn't checked...

与运算符相关的是运算符,||

if (a || b) {
// if a or b is true

我们可以用它来以不同但等效的方式构建这个条件:

if (!(ui->checkBox_1->isChecked() || ui->checkBox_2->isChecked())) {
// if it is not the case that box 1 is checked or box 2 is checked

答案 1 :(得分:3)

我会这样做(如果我有复选框和一个必须选择 - 我可能会使用单选按钮或组合框与两个选项,取决于GUI的其余部分,从而确保只有一个选择的可能性):

void Dialog::on_pushButton_clicked()
{
    if(ui->checkBox->isChecked())
    {
        QMessageBox::information(this, "Result", "Cool another Male !");
    }
    else if(ui->checkBox_2->isChecked())
    {
        QMessageBox::information(this, "Result", "Yay a female");
    }
    else
    {
        QMessageBox::information(this, "Result", "What are you???");
    }
}

此处不需要if(2 variables)检查,因为else会处理此问题。但如果你在其他地方需要类似的东西,你当然可以使用&amp;&amp;和||结合这两个条件。

正如其他人所说,如果您阅读有关C或C ++的教科书,那将是明智的。

答案 2 :(得分:1)

void Dialog::on_pushButton_clicked()
{
    if(ui->checkBox->isChecked())
    {
        QMessageBox::information(this,"Result","Cool another Male !");
    }

    if(ui->checkBox_2->isChecked())
    {
        QMessageBox::information(this,"Result", "Yay a female");
    }

    if(!(ui->checkBox->isChecked() || ui->checkBox_2->isChecked()))
    {
        QMessageBox::infomration(this,"Result","Nothing checked.");
    }
}

答案 3 :(得分:1)

您可以使用逻辑运算符 - AND(&amp;&amp;)OR(||)在if语句中使用多个变量。显然变量是Bool类型的。你也可以在返回bool类型值的if语句中传递函数。