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的響應。你能告訴我我做錯了什麼嗎?