2014-11-03 3 views
0

Qt에서 Matlab 함수를 호출해야합니다. Engine을 통해 표준 방법이 있다는 것을 알고 있지만 .lib 라이브러리를 연결할 수 없습니다 (Mingw 컴파일러를 사용하기 때문에 생각합니다). 그래서, 내가 이해하는대로 QProcess 그것을 할 수있는 유일한 방법입니다. 저는 예제를 공부하고 간단한 프로그램을 작성했습니다.이 프로그램은 QLineEdit (Matlab 스크립트 용)과 QPushButton (Matlab에 스크립트 전송 및 응답 읽기 용) 두 개가 있습니다. 다음은 코드입니다.QProcess를 사용하여 Qt에서 matlab 함수를 호출하십시오.

MainWindow::MainWindow(QWidget *parent) : 
     QMainWindow(parent), 
     ui(new Ui::MainWindow) 
    { 
     ui->setupUi(this); 
     proc = new QProcess(this); 
     proc->start("\"C:\\Program Files\\MATLAB\\R2013b\\bin\\matlab.exe\""); 

    } 

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

    void MainWindow::on_readButton_clicked() 
    { 
     QByteArray dataError = proc->readAllStandardError(); 
     qDebug()<<dataError; 
     QByteArray dataOutput = proc->readAllStandardOutput(); 
     qDebug()<<dataOutput; 
    } 

     void MainWindow::on_writeButton_clicked() 
    { 
     QString text = ui->textForMatlab->text(); 
     QByteArray script; 
     script.append(text); 
     qDebug()<<script; 
     proc->write(script); 
    } 

matlab.exe가 시작될 때 프로그램을 시작할 때. 하지만 QLineEdit에 뭔가를 입력하고 쓰기 버튼을 클릭하면 matlab에서 응답이 없습니다. 내가 뭘 잘못하고 있는지 말해 줄 수 있니? 그 다음 작동하지 않는 경우

답변

0

myProcess->startDetached(program,argumets);

과 노력이

QString program = "C:/Program Files/MATLAB/R2013b/bin/matlab"; 
    QStringList arguments; 
    arguments << "yourarg" << "youragr2";// if u have any aruguments then pass here 

    QProcess *myProcess = new QProcess(this); 
    myProcess->start(program, arguments); 

시도

관련 문제