Здравствуйте!
Работаю в Qt Creator 4.3.1, на Qt 5.9.1 Использую компилятор MinGW 5.3 (Windows10 64x).
Мне нужно при нажатии кнопки в основном приложении вызвать виджет из dll.
Создала dll. Ниже привожу экспортируемый класс Test. Если конструктор класса оставить пустым, то при нажатии на кнопку появляется ошибка:
QWidget: Must construct a QApplication before a QWidget. А если в конструкторе класса создаю объект QApplication, то при компиляции dll появляется ошибка:
invalid use of incomplete type 'class QApplication.
Если в dll нельзя создавать QApplication, то как правильно вызвать виджет из dll? Примеры в сети в основном сделаны на Q4 и предлагают создать QApplication.
#ifndef TEST_H
#define TEST_H
#include "test_global.h"
class TESTSHARED_EXPORT Test
{
public:
Test();
~Test();
void pr();
};
#endif // TEST_H
#include "test.h"
#include "window.h"
QApplication* pApp = NULL;
Test::Test()
{
int argc=0;
char *argv[1];
argv[0]="";
pApp = new QApplication(argc, argv); //здесь ошибка: invalid use of incomplete type 'class QApplication
}
Test::~Test()
{
delete pApp;
}
void Test::pr() //Метод который вызывается при нажатии кнопки в основном приложении
{
Window w;// Это мой виджет
w.show();
}
Вызов в основном приложении:
void MainWindow::on_pushButton_2_clicked()
{
Test t;
t.pr();
}