Конструктор QApplication (Qt) занимает до 10 секунд - PullRequest
1 голос
/ 14 ноября 2010

Я закончил свое первое приложение Qt и заметил, что конструктор QApplication в файлах main.cpp занимает до 10 секунд для выполнения.Это приводит к раздражающей задержке запуска, когда я даже не могу отобразить заставку.

При профилировании этой задержки оказывается, что метод initializeMultitouch_sys в классе QApplicationPrivate является виновником .В частности, вызов 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 - РЕШЕНИЕ ПРОБЛЕМЫ

Iзаметил, что проблема возникла со всеми приложениями на основе Qt, включая Qt Designer.Перезагрузка исправила это.

1 Ответ

2 голосов
/ 14 ноября 2010

Это исправлено в 4.6.3 ( QTBUG-6007 / commit )

...