2009-05-28 5 views
0

저는 리눅스에서 작업하고 있습니다. [GCC 컴파일러] 컴파일 할 때 CDT + QT와 Eclipse를 사용하고 있습니다. QT 윈도우 및 OpenGL 함수를 사용하여 DICOM 이미지의 시퀀스를 표시해야합니다. pls는 이미지 시퀀스를 표시하는 함수가 무엇인지 알려줍니다. 3 개의 함수를 사용 중입니다. 1) OpenGL 함수를 초기화하기위한 initallizeGL(). 2) Glut의 glutInitWindowSize() 대신 resizeGL()을 사용하십시오. 3) Glut에서 glutDisplayFunc() 대신 paintGL()을 사용합니다. 4) Glut의 glutPostRedisplay() 대신 updateGL()을 사용하십시오.QT를 사용하여 DICOM 이미지의 시퀀스를 표시 할 때 문제가 발생했습니다.

또한 pls는 QT에서 Glut에 해당하는 함수임을 알려드립니다 glutMainLoop(); glutSwapBuffers(); glutInitDisplayMode(); glutIdleFunc (유휴); glutInit (& argc, argv);

답변

0

QT가 gluSwapBuffers, glutInitDisplayMode 및 glutInit을 이미 돌봐 줘서 그런 필요가 없다고 말씀 드리고 싶습니다. 함수의 매핑이 정확하다면 Qt와 Glut은 GL에 대해 다른 방식으로 생각할 수 있습니다 (다른 방식으로 생각해야합니다). Qt 메서드는 거의 자체 설명이 필요합니다. . 어떻게 작동하는지 더 잘 이해하려면 KGLEngine 코드 또는 다른 Qt + GL 코드를 다운로드하는 것이 좋습니다.

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'데모;

http://doc.trolltech.com/4.6-snapshot/demos-boxes.html

관련 문제