QGLWidget не передает сигнал в QMainWindow

РЕДАКТИРОВАТЬ: Хорошо, я решил проблему сам, это унизительно … Не было ни одного случая MainWindow создано в пи main() но я использовал сам виджет в качестве окна -.-

Я немного поиграюсь с OpenGL в Qt, используя QGLWidget (Qt Version 5.3). Моя проблема заключается в следующем: у меня есть класс PaintWidget что происходит от QGLWidget, В своем PaintWidget::mousePressEvent(QMouseEvent*) Я прочитал некоторое значение из буфера трафарета и хочу отправить это через emit к MainWindow, Сигнал реализован как

class PaintWidget : public QGLWidget {
Q_OBJECT
signals:
void objectClicked(int id);

public:
PaintWidget(QWidget* parent = 0);
...
}

и mousePressEvent внешний вид метода

void PaintWidget::mousePressEvent(QMouseEvent* event) {
GLuint id;
glReadPixels(event->x(), m_height - event->y(), 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_INT, &id);
if (id > 0) {
emit objectClicked((int)id);
}
}

Теперь, когда я подключаю этот сигнал к гнезду внутри PaintWidget все работает как положено, значит слот называется. Но когда я подключаю его к некоторому слоту моего MainWindow, он не работает. MainWindowконструктор это:

MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent) {
m_paintEngine = PaintEngine::instance();
m_paintWidget = new PaintWidget();
connect(m_paintWidget, SIGNAL(objectClicked(int)), this, SLOT(dummy(int)));
setCentralWidget(m_paintWidget);
}

Вот, dummy это публичный слот, и он называется более новым. Почему это не работает?

Спасибо,
Майкл

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector