代码之家  ›  专栏  ›  技术社区  ›  Fabian

QApplication Constructor(qt)最多需要10秒

  •  1
  • Fabian  · 技术社区  · 15 年前

    我已经完成了我的第一个Qt应用程序,并注意到 主.cpp文件中的qApplication构造函数最多需要10秒 执行。这会导致一个恼人的启动延迟,我甚至无法显示启动屏幕。

    当分析此延迟时,发现 qApplicationPrivate类中的InitializeMultiTouch_Sys方法是罪魁祸首 . 具体来说,iinkTablets->get_count(…)调用需要所有时间。

    void QApplicationPrivate::initializeMultitouch_sys()
    {
        [...]
        IInkTablets *iInkTablets = 0;
        HRESULT hr = CoCreateInstance(QT_CLSID_InkTablets, NULL, CLSCTX_ALL, QT_IID_IInkTablets, (void**)&iInkTablets);
        if (SUCCEEDED(hr)) {
            long count = 0;
            iInkTablets->get_Count(&count);   // <== Takes 5-10 seconds!!
            for (long i = 0; i < count; ++i) {
            [...]
        }
    }
    

    我正在使用Windows7,但没有使用任何多点触控功能。知道是什么导致了这个问题以及我如何避免它吗?

    谢谢, 费边

    更新2010-11-14-问题已解决

    我注意到所有基于qt的应用程序(包括qt designer)都出现了这个问题。重新启动修复了它。

    1 回复  |  直到 15 年前
        1
  •  2
  •   chris    15 年前

    这在4.6.3中进行了修正。( QTBUG-6007 / commit )