Итак, в основном, я делаю очень простое приложение Qt, чтобы помочь меня, пока я изучаю OpenGL. Идея
состоит в том, что у меня есть два окна, одно - это контекст GL (GLWidget, производный от QGLWidget), а другое - простой графический интерфейс с парой индикаторов выполнения и текстовой областью.
Я могу заставить приложение скомпилироваться и запустить, и все прекрасно, ДО ТОГО, как я попытался соединить сигналы и слот между двумя окнами. Я прочитал документацию по QGLWidget, официальное руководство по сигналам и слотам, а также документацию для int connect ()
.
Для иллюстрации: мой файл main.cpp:
#include <QApplication>
#include <QObject>
#include "glwidget.h"
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow *mWindow = new MainWindow();
GLWidget *gl = new GLWidget();
//If this line is commented out, the program compiles and runs
connect(gl, SIGNAL(fpsReport(float)), mWindow, SLOT(updateFPS(float));
mWindow->show();
gl->show();
return app.exec();
}
Конкретный компилятор я получаю следующие ошибки:
В функции 'int qMain (int, char **)':
недопустимое преобразование из 'GLWidget *' в 'SOCKET'
не может преобразовать 'const char *' в 'const sockaddr * 'для аргумента' 2 'в' int
connect (SOCKET, const sockaddr *, int) '
Не уверен, что это актуально, но я' Запуск 32-разрядной версии Windows 7 Ultimate.