Mam problem z #include w Qt, chodzi o to że chcę zrobić sygnał i slot pomiędzy dwoma klasami które znajdują się oddzielnych plikach. No i potrzebuje w każdej z tych dwóch poniższych klas stworzyć instancję obiektu MainWindow
w welcome.h
oraz Welcome
w mainwindow.h
żeby potem móc się odwołać poprzez nią za pomocą funkcji connect(). Kompilator zgłasza szereg błędów które są bezsensowne typu że brakuje *
albo '
.
Szukałem w internecie i znalazłem tylko takie coś: https://stackoverflow.com/questions/36927878/c2143-syntax-error-missing-before-c4430-missing-type-specifier-in
No ale to nie rozwiązuje mojego problemu...
"welcome.h"
#ifndef WELCOME_H
#define WELCOME_H
#include "mainwindow.h"
#include <QDialog>
namespace Ui
{
class Welcome;
static int MAX_CAMERA_NUMBER; // zmienna statyczna na ilość dostępnych kamer
}
class Welcome : public QDialog
{
Q_OBJECT
public:
explicit Welcome(QWidget *parent = 0);
~Welcome();
private slots:
void on_chessBoardButton_clicked(); // reakcja na wciśnięcie odpowiedniej planszy
void on_chArucoBoardButton_clicked();
void on_circlesBoardButton_clicked();
private:
Ui::Welcome *ui;
MainWindow *mainWindow; //TUTAJ JEST PROBLEM
public slots:
void on_backButton_clicked();
};
#endif // WELCOME_H
"mainwindow.h"
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTimer>
#include <QDialog>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include "welcome.h"
namespace Ui
{
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT // makro Qt, wywoływane przez Qt tłumaczy wstawki Qt na kod w stylu C++
public:
explicit MainWindow (unsigned char CalibType, QWidget *parent = 0);
~MainWindow();
private:
Welcome *previousWelcome; // TUTAJ JEST PROBLEM
cv::VideoCapture capWebcam; // obiekt kamery do wyswietlania
void calibrateChessboard();
void open_Camera(int); // f. do otwierania danej kamery
Ui::MainWindow *ui;
cv::Mat matOriginal; // Obraz Mat z w stylu biblioteki OpenCV
QImage qimgOriginal; // Obraz w stylu biblioteki Qt
QTimer* tmrTimer; // timer
int camera_index = 0; // aktualnie włączona kamera
public slots:
void processFrameAndUpdateGUI(); // // f. aktualizująca klatkę przechwyconą z kamery oraz GUI
private slots:
void on_tryAgain_clicked();
void on_nextButton_clicked();
void on_previousButton_clicked();
void on_back_clicked();
};
#endif // MAINWINDOW_H