我正在使用自己的GNU makefile编译QTGUI应用程序(版本4).当我使用C++ 03标准和gcc编译器时,一切都很好用.
现在我需要C++ 11标准并得到错误:
无法找到字符串文字运算符'operator'"__ FILE__'"
在我的window.cpp中的以下行
connect(ui->myGLWidget, SIGNAL(xRotationChanged(int)), ui->rotXSlider, SLOT(setValue(int)));
connect(ui->myGLWidget, SIGNAL(yRotationChanged(int)), ui->rotYSlider, SLOT(setValue(int)));
connect(ui->myGLWidget, SIGNAL(zRotationChanged(int)), ui->rotZSlider, SLOT(setValue(int)));
Run Code Online (Sandbox Code Playgroud)
我尝试使用UIC版本4和5编译我的.ui文件,但没有任何改变.每当使用Qbject :: connect(.....)时,UIC,ui_window.h的结果都会出现相同的错误.
我不能回到旧的C++标准,两个UIC编译器生成相同的ui_window.h文件.
我怎么能摆脱它?
我想在QGLWidget中显示OptixSDK的sample6.
我的应用程序只有3个QSlider围绕X,Y,Z轴和QGLWidget旋转.
根据我的理解,每当我的QSlider或Mouseevents 调用updateGL()时,都会调用paintGL().然后我初始化一个旋转矩阵并将此矩阵应用于PinholeCamera,以便用新变换的cameracoordinates追踪场景,对吧?
跟踪完成后,我得到outputbuffer并使用glDrawPixels()绘制像素,就像在OptiX框架中给出的GLUTdisplay.cpp一样.
但我的问题是图像偏斜/扭曲.例如,我想要显示一个球,但球是极端的,但旋转工作正常.当我缩小时,图像似乎在水平方向上比在垂直方向上缩放得慢得多.
我几乎可以肯定/希望它必须对gl ......()函数做一些没有正确使用的东西.我错过了什么?有人可以帮我吗?
为了完整性,我发布了paintGL()和updateGL()代码.
void MyGLWidget::initializeGL()
{
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
m_scene = new MeshViewer();
m_scene->setMesh( (std::string( sutilSamplesDir() ) + "/ball.obj").c_str());
int buffer_width, buffer_height;
// Set up scene
SampleScene::InitialCameraData initial_camera_data;
m_scene->setUseVBOBuffer( false );
m_scene->initScene( initial_camera_data );
int m_initial_window_width = 400;
int m_initial_window_height = 400;
if( m_initial_window_width > 0 && m_initial_window_height > 0)
m_scene->resize( m_initial_window_width, m_initial_window_height );
// Initialize camera according to scene params
m_camera = …Run Code Online (Sandbox Code Playgroud)