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

浙公网安备 33010602011771号