0

我在我的 .cpp 代码中包含了 'qDebug.h' 和 iostream 和 stdio.h 并且 qDebug 已正确使用,但在我的输出窗口中没有任何反应...我尝试了 qDebug 和 cout,想打印出所有打印窗口上的 txt 文件中的数据但失败。谁能告诉我如何将所有这四列数据作为整数存储在四个 Qvector 中?这里我想得到四组数据来绘制曲线。

#include "dynamicplot.h"
#include "ui_dynamicplot.h"
#include "ui_confirmdialog.h"
#include "confirmdialog.h"
#include <QFile>
#include <QFileDialog>
#include <QMessageBox>
#include <QDebug>
#include <QFileInfo>
#include <QVector>
#include <stdio.h>
#include <iostream>
#include <qdebug.h>

using namespace std;
DynamicPlot::DynamicPlot(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::DynamicPlot)
{
    ui->setupUi(this);
}

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

void DynamicPlot::on_pB1_clicked()
{
    QString file_full,filePath;
    QFileInfo fi;
    file_full = QFileDialog::getOpenFileName(this, tr("选择文件"),tr( "*.txt"));
    fi=QFileInfo(file_full);
    //=fi.fileName();
    filePath=fi.absolutePath();

   if(!file_full.isNull()){
        QFile file(file_full);

        if(!file.open(QFile::ReadOnly|QFile::Text)){
           QMessageBox::warning(this,tr("Error"),tr("read file error:%1").arg(file.errorString()));
            return;
        }
        ui->textEdit_2->setPlainText(filePath);
        QTextStream in(&file);
        QApplication::setOverrideCursor(Qt::WaitCursor);
        dialog = new ConfirmDialog(this);
        dialog->setModal(false);
        dialog->ui->textEdit->setPlainText(in.readAll());
        QApplication::restoreOverrideCursor();
        dialog->show();
         //try QDebug
        while (!in.atEnd())
        {
         QString line = in.readLine();
         line = line + "\n";
         //data = data + line;
         qDebug()<<line.toStdString().data();
        }
        //try cout
        QVector<int>point_x;
        QVector<int>point_y;
            //int i=0,k=0;
            int i=0;
            while(!file.atEnd())
            {
                QString lineString_x=QString(file.readLine()).trimmed();
                //QString lineString_y=QString(file.readLine()).trimmed();
                point_x<<(int)(i++,lineString_x.toInt());
                //point_y<<(int)(k++,lineString_y.toInt());

            }
            for(i=0;i<point_x.count();i++)
            {
            //qDebug()<<point_x[i];
            //qDebug()<<point_y[i];
             cout<<point_x[i]<<endl;
            }

    }

    else{
        qDebug()<<"cancle";
    }

}

这是打印输出窗口: 这是打印窗口

这是用户界面: 这是用户界面

4

1 回答 1

1

你有

CONFIG += console

在你的 .pro 中?你必须重建你的项目。

于 2018-11-28T14:05:46.177 回答