2009-05-28 6 views
0

я работаю в Linux [компилятора GCC], Я использую Eclipse, с CDT + QT для компиляции Мне нужно, чтобы отобразить последовательность DICOM изображений с помощью окна QT и функции OpenGL pls дайте мне знать, какая функция отображает последовательность изображений Я использую 3 функции 1) initiallizeGL() для инициализации функций OpenGL. 2) resizeGL() вместо glutInitWindowSize() в Glut. 3) paintGL() вместо glutDisplayFunc() в Glut. 4) updateGL() вместо glutPostRedisplay() в Glut.Проблема в отображении последовательности DICOM изображений с использованием QT

также pls сообщите мне, какие функции эквивалентны глушения в QT glutMainLoop(); glutSwapBuffers(); glutInitDisplayMode(); glutIdleFunc (простой); glutInit (& argc, argv);

ответ

0

Я бы сказал, что Qt уже заботится о gluSwapBuffers, glutInitDisplayMode и glutInit, поэтому вам не нужны эти. Я также не уверен, что ваше отображение функций верное, просто поставлено, Qt и Glut думают о GL по-другому, так что, возможно, вам нужно одинаково (по-другому думать), а методы Qt в значительной степени объясняют себя , Я бы рекомендовал загрузить код KGLEngine или любой другой проект Qt + GL, чтобы лучше понять, как он работает.

4

Вы должны иметь возможность легко отображать изображения, просто используя QGLWidget в качестве своего устройства для рисования, которое, в зависимости от вашего конкретного использования, может упростить вашу реализацию. Это нарисует изображение с помощью механизма OpenGL Paint в Qt. Что-то вроде следующего должно позволить вам отображать изображение;

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; 
}; 

Если вам нужно положить его в трехмерную сцену, вам, вероятно, потребуется загрузить изображение в виде текстуры. Некоторые из демонстраций Qt OpenGL должны быть в состоянии дать вам отправную точку, например. демо-версия «Boxes»;

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