qt调用fortran文件

fortran文件实例

C   helloworld.f
C
      PROGRAM HELLOWORLD

      character(len=16) :: buffer(10)

      WRITE(*,10)
   10 FORMAT('hello, world')
      nargin=iargc()
      do i = 1, nargin
      call getarg(i,buffer(i))
      end do
      

      do i = 1, nargin
      print *, 'The is ', buffer(i)
      end do
       

      END PROGRAM HELLOWORLD

 

 

QT代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <qdebug.h>
#include <qprocess.h>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

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


void MainWindow::on_pushButton_clicked()
{
    qDebug()<<QStringLiteral("开始点击");
    ui->textBrowser->clear();
    ui->textBrowser->setText(QStringLiteral("请等待"));
    ui->textBrowser->update();
    QProcess myProcess(this);
    QString program =  "D:\\fortran\\fortran\\a.exe";
    QStringList arguments;
    arguments<<"1"<<"2"<<"3";//传递到exe的参数
    myProcess.start(program,arguments);
    while (myProcess.waitForFinished(100) == false) {
        QByteArray qByteRead = myProcess.readAllStandardOutput();
        if (!qByteRead.isEmpty()) {
            ui->textBrowser->append(QString::fromLocal8Bit(qByteRead));
            repaint();
        }
    }
    QByteArray qByteRead = myProcess.readAllStandardOutput();
    ui->textBrowser->append(QString::fromLocal8Bit(qByteRead));
    qDebug()<<QString::fromLocal8Bit(qByteRead);
    qDebug()<<"结束点击";

}

 

 

 

 代码仓库:https://gitee.com/universalpeace/qt-call-fortran.git

 

posted @ 2021-04-20 16:14  假假修真  阅读(518)  评论(0)    收藏  举报