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

发布于 2024-10-01 20:55:58 字数 885 浏览 1 评论 0原文

我已经完成了第一个 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,但没有使用任何多点触控功能。知道是什么原因导致这个问题以及如何避免它?

谢谢, Fabian

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

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

I have finished my first Qt application, and noticed that the QApplication constructor in the main.cpp files take up to 10 seconds to execute. This results in an annoying startup delay where I can't even show a splash screen.

When profiling this delay it turns out that the initializeMultitouch_sys method in the QApplicationPrivate class is the culprit. Specifically, the iInkTablets->get_Count(...) call takes all the time.

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) {
        [...]
    }
}

I am using Windows 7, but not utilizing any multi-touch feature. Any idea what causes this problem and how I can avoid it?

Thanks,
Fabian

UPDATE 2010-11-14 - PROBLEM SOLVED

I noticed that the problem then occured with all Qt based applications, including Qt Designer. A reboot fixed it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等数载,海棠开 2024-10-08 20:55:58

此问题已在 4.6.3 中修复 (QTBUG-6007/

This is fixed in 4.6.3 (QTBUG-6007/commit)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文