В общем, я делаю очень простое приложение 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();
}
Я получаю следующие конкретные ошибки компилятора:
In function 'int qMain(int, char**)':
invalid conversion from 'GLWidget*' to 'SOCKET'
cannot convert 'const char*' to 'const sockaddr*' for argument '2' to 'int
connect(SOCKET, const sockaddr*, int)'
Не уверен, еслиэто актуально, но я использую Qt Creator 2.0.1, основанный на Qt 4.7.0 (32 бит).Под управлением 32-битной Windows 7 Ultimate.