QApplication构造函数(Qt)最多需要10秒

时间:2010-11-14 12:49:47

标签: qt multi-touch

我已经完成了我的第一个Qt应用程序,并注意到main.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) {
        [...]
    }
}

我使用的是Windows 7,但没有使用任何多点触控功能。知道导致这个问题的原因以及如何避免这个问题吗?

谢谢, 费边

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

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

1 个答案:

答案 0 :(得分:2)

这已在4.6.3(QTBUG-6007 / commit

中修复