我想訪問類別爲MainWindow
的私人對象,朋友功能void recognized(RecoResult *result)
已在參數result
中擁有另一個名稱空間LapsAPI::RecoResult
。我如何在這個朋友功能裏訪問Ui::MainWindow *ui
?朋友功能無法訪問私人會員
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "main.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
friend void recognized(RecoResult *result);
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "main.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
void MainWindow::on_pushButton_clicked()
{
// Iniciando classe de reconhecimento
SREngine* en;
en = new SREngine("clara.jconf");
// Inicio do reconhecimento de voz
en->setOnRecognizeAction(&recognized);
en->startRecognition();
printf("Ola!\n");
printf("Reconhecendo\n");
sleep(100);
en->stopRecognition();
}
MainWindow::~MainWindow()
{
delete ui;
}
void recognized(RecoResult *result){
if(result->getConfidence() > TRUST){
cout << result->getUterrance() << " Confiança " << result->getConfidence() << endl;
string uterrance = "";
float confidence = 0.0;
uterrance = result->getUterrance();
confidence = result->getConfidence();
cout << "MENSAGEM RECONHECIDA SEM FILTROS: " << uterrance << " " << confidence << "\n" << endl;
ui->textBrowser->append("RECONHECIDA");
}
}
ERROR
/home/dayannefernandes/GitHub/clara-interface/clara-ui/mainwindow.cpp:44: error: 'ui' was not declared in this scope
ui->textBrowser->append("MENSAGEM RECONHECIDA");
^
解釋你認爲'ui'應該在'recognised'函數內意味着什麼 –
這與命名空間,'識別'和'MainWindow'都不是全局命名空間 –
對不起,我忘了告訴我認識的,我因爲setOnRecognizeAction()只需要一個LaPSAPI :: RecoResult,所以我不能在MainWindow中聲明識別,因爲我會遇到這個錯誤: 錯誤:沒有匹配函數調用'LapsAPI :: SREngine :: setOnRecognizeAction void(MainWindow :: *)(LapsAPI :: RecoResult *))' –