QGLWidget에서 파생 된 이미지 표시 위젯이 있습니다. 내가 가지고있는 문제는이 위젯의 초기 생성이 3 초 이상 걸린다는 것입니다. 이로 인해 보려는 이미지를 선택하고 창을 보는 것 사이에 눈에 띄는 지연이 발생합니다. 아무도이 거대한 지연을 일으키는 원인이 무엇인지 말해 줄 수 있습니까?하위 클래스 qglwidget이 3 초 이상 걸리는 이유는 무엇입니까?
나는 이것에 내 코드를 단순화 :
class ImageDisplayTest : public QGLWidget
{
Q_OBJECT
public:
ImageDisplayTest(QWidget *parent = 0)
: QGLWidget(parent)
{
// empty constructor body
}
protected:
virtual void initializeGL() {}
virtual void paintGL() {}
virtual void resizeGL(int width, int height) {}
};
QElapsedTimer timer;
qint64 time_ms;
timer.start();
ImageDisplayTest* pTest1 = new ImageDisplayTest();
time_ms = timer.elapsed();
timer.restart();
ImageDisplayTest* pTest2 = new ImageDisplayTest();
time_ms = timer.elapsed();
timer.restart();
ImageDisplayTest* pTest3 = new ImageDisplayTest();
time_ms = timer.elapsed();
timer.restart();
ImageDisplayTest* pTest4 = new ImageDisplayTest();
time_ms = timer.elapsed();
pTest1이 3200ms, 다음 3 개 항목에 대한 걸리는 시간입니다 인스턴스화하는 데 걸리는 시간은 약 950ms 각이다. 나는 Windows 7에서 Qt 4.7.4를 사용하고 있으며 Visual Studio 2012 (익스프레스 에디션)를 사용하여 컴파일하고 실행하고 있습니다. 비교를 위해 QGLWidget 대신 QWidget에서 파생 된 경우 인스턴스화하는 데 걸리는 시간은 0ms로 되돌아옵니다 (즉, 측정하기에는 너무 작음).