首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

关于lineEdit清除之前显示内容,不影响下一次显示的有关问题

2013-09-05 
关于lineEdit清除之前显示内容,不影响下一次显示的问题新手提问,如何让lineEdit显示完一次指定的内容后,彻

关于lineEdit清除之前显示内容,不影响下一次显示的问题
新手提问,如何让lineEdit显示完一次指定的内容后,彻底清除,进行下一次显示?我使用了lineEdit->clear();,但是还是影响了下一次的正常显示,例如:要求判断一个式子是否成立,成立则Lineedit显示1,不成立显示0,第一次判断的结果是成立,显示了1,进行了clear清除,但是第二次判断,结果不成立,应该显示0,为什么还显示1呢?求解答,谢谢大家!
[解决办法]


if(true)
{
    lineEdit->clear();
    lineEdit->setText(QString::number(1));
}
else
{
    lineEdit->clear();
    lineEdit->setText(QString::number(0));
}

[解决办法]
楼主确定问题出在显示吗?
[解决办法]
引用:
Quote: 引用:

Quote: 引用:


if(true)
{
    lineEdit->clear();
    lineEdit->setText(QString::number(1));
}
else
{
    lineEdit->clear();
    lineEdit->setText(QString::number(0));
}

上面写错了,应该用一个变量去判断。

还是不对啊,还是影响了第二次判断,问题是如果单独进行一个文件的判断,显示的是正确的,但是判断多个文件的就不行了,问题是出在哪里呢?谢谢您!

不如你把代码贴出来吧。
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:


if(true)
{
    lineEdit->clear();
    lineEdit->setText(QString::number(1));
}
else
{
    lineEdit->clear();
    lineEdit->setText(QString::number(0));
}

上面写错了,应该用一个变量去判断。

还是不对啊,还是影响了第二次判断,问题是如果单独进行一个文件的判断,显示的是正确的,但是判断多个文件的就不行了,问题是出在哪里呢?谢谢您!

不如你把代码贴出来吧。

麻烦您帮我看一下7#的代码,运行完之后,确实Lineedit显示的不正确

 


QList<int>n_listY;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    for(int x=0;x<=8;x++)
    ui->comboBox->addItem("00"+QString::number(x));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QString date1=ui->comboBox->currentText();
    QString path= QString("D:/%1.txt").arg(date1);
    FILE *fp;
    if( (fp = fopen( path.toUtf8(),"rb") ) == NULL)
    {
        QMessageBox::warning(this,"warning","open file to read failed!");
        return;
    }

  int nyo=0;
     int fy;
     fy=0;
    while( !feof( fp ) )

       {
            fread(&fy,sizeof(int),1,fp);
            n_listY.append(fy);

        }
        for(int ny=0;ny<n_listY.size();ny++)

              {

                 if(n_listY.at(ny)>1079140000)

                  {
                      nyo=1;
                       ui->lineEdit->clear();
                      ui->lineEdit->setText(QString::number(nyo));
                      break;

                  }
                  else               //nyo = 0的时候没有给lineEdit赋值


                  {
                      nyo=0;
                      ui->lineEdit->clear();
                      ui->lineEdit->setText(QString::number(nyo));
                  }
              }
        fclose(fp);

    }


[解决办法]
引用:
程序的代码
QList<int>n_listY;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    for(int x=0;x<=8;x++)
    ui->comboBox->addItem("00"+QString::number(x));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QString date1=ui->comboBox->currentText();
    QString path= QString("D:/%1.txt").arg(date1);
    FILE *fp;
    if( (fp = fopen( path.toUtf8(),"rb") ) == NULL)
    {
        QMessageBox::warning(this,"warning","open file to read failed!");
        return;
    }

  int nyo=0;
     int fy;
     fy=0;
    while( !feof( fp ) )

       {
            fread(&fy,sizeof(int),1,fp);
            n_listY.append(fy);

        }
        for(int ny=0;ny<n_listY.size();ny++)

              {

                 if(n_listY.at(ny)>1079140000)



                  {
                      nyo=1;
                       ui->lineEdit->clear();
                      ui->lineEdit->setText(QString::number(nyo));
                      break;

                  }
              }
        fclose(fp);

    }



你这代码 有设置显示0的地方吗?
[解决办法]
引用:
Quote: 引用:
现在是这样的,如果判断出了,一个文件中有数据大于规定的这个数,那么Lineedit显示为1,就不继续判断,跳出此次判断,我用的break是否是对的呢?如果这个文件中,数据都没有大于规定的数,那么lineedit就等于0了,下一个文件也是这么判断,您看看问题出在哪里呢?

你大于某个数的时候显示1已经跳出循还了,这时候就不会显示0了;

如果文件中没有大于某个数的数字,那么你调用

nyo=0;
ui->lineEdit->clear();
ui->lineEdit->setText(QString::number(nyo));

不就可以了吗?

你前面说

开始是没有设置,但是我按照9#说的,加了一个else用来显示0,但是还是不对,,当第一次lineedit显示0,第二次能正确显示1,这个可以,但是若lineedit先显示1,后面就不显示0了,还是保持1,不知道是什么原因了呢

你都已经跳出循还了,为什么还会显示0???
[解决办法]
setText(QString());

热点排行