我在Linux [GCC Compiler]工作, 我正在使用Eclipse和CDT + QT进行编译 我需要使用QT窗口和OpenGL函数显示DICOM图像的序列 请告诉我哪个是显示图像序列的功能 我正在使用3个功能 1)initiallizeGL()初始化OpenGL函数。 2)在Glut中调整resizeGL()而不是glutInitWindowSize()。 3)在Glut中使用paintGL()而不是glutDisplayFunc()。 4)在Glut中使用updateGL()而不是glutPostRedisplay()。
还请告诉我哪些是QT中的Glut等效功能 glutMainLoop(); glutSwapBuffers(); glutInitDisplayMode(); glutIdleFunc(空闲); glutInit(& argc,argv);
答案 0 :(得分:4)
您应该能够通过简单地使用QGLWidget作为您的绘画设备轻松显示图像 - 根据您的具体用例 - 可能会简化您的实施。这将使用Qt中的OpenGL绘图引擎绘制图像。如下所示应该允许您显示图像;
class CustomWidget : public QGLWidget
{
public:
CustomWidget(QWidget* parent=0) : QGLWidget(parent), pix("foo.jpg")
{
}
protected:
void paintEvent(QPaintEvent *pe)
{
QPainter p(this);
// maybe update the pixmap
p.drawPixmap(this->rect(),pix);
}
private:
QPixmap pix;
};
如果需要将其放在3D场景中,则可能需要将图像作为纹理加载。一些Qt OpenGL演示应该能够为您提供一个起点,例如: 'Boxes'演示;
答案 1 :(得分:0)
我会说Qt已经处理了gluSwapBuffers,glutInitDisplayMode和glutInit,所以你不需要那些。 我也不确定你的函数映射是否正确,简单地说,Qt和Glut以不同的方式考虑GL,所以你可能需要相同(以不同的方式思考)和Qt方法几乎是自我解释的。 我建议下载KGLEngine或任何其他Qt + GL项目的代码,以便更好地了解它的工作原理。