http://qtprojects.narod.ru/test.rar (50кб)
Выложил тестовую пустую программку, потому что описать ошибки здесь трудно, пожалуйста помогите. В ней два класса, потомки QObject, абсолютно одинаковые, различаются только именем класса, в них объявлен одноименный сигнал, sos(int), в прочем там все есть.
Конструктор для QMainWindow:
test::test(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
progressBar = new QProgressBar();
statusBar()->addWidget(progressBar);
progressBar->setMinimum(0);
progressBar->setMaximum(2000);
MGrid *grid;
MPoints *points;
connect(grid, SIGNAL(sos(int)), progressBar, SLOT(setValue(int)));
}
Вышеописанные классы - MGrid И MPoints. Абсолютно одинаковые. При задании в качестве параметра в функции connect объекта points - вылезает одна ошибка на стадии выполнении программы - "Unhandled exception at 0x0012ffe0 ...", а при задании объекта grid - другая: ""A buffer overrun has occured in test.exe which has corrupted the program's internal state". Но классы ведь одинаковые??! Ошибку не вижу в упор, вот листинги классов MGrid и MPoints:
// -----------------------MPoints----------------------
#include <QObject>
class MPoints : public QObject
{
Q_OBJECT
public:
MPoints();
~MPoints();
void func2();
signals:
void sos(int value);
};
//--------------------------MGrid---------------------------
#include <QObject>
class MGrid : public QObject
{
Q_OBJECT
public:
MGrid();
~MGrid();
void func2();
signals:
void sos(int value);
};
Впрочем все это есть в проекте, пожалуйста помогите, скачацте - попробуйте откомпилировать, проект - MSVC2005.
Заранее очень благодарен!!!