0
我有一個從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每。我正在使用Qt 4.7.4在Windows 7上運行,並使用Visual Studio 2012(快速版)進行編譯和運行。爲了比較,如果我從QWidget而不是QGLWidget派生,那麼實例化所花費的時間會回到0毫秒(即太小而無法測量)。