【问题标题】:Why does Qt's .show() function take forever to load?为什么 Qt 的 .show() 函数需要永远加载?
【发布时间】:2014-04-26 04:32:49
【问题描述】:

在我的 Qt 应用程序中,我在公共插槽下有以下代码:

   NewForm* newform = new NewForm(ui->frame_2);
   newform->show();

在发出 click() 信号后,表单打开大约需要 8 秒。我在表单上只有一些标签、两个 lineedits、一个平面按钮和一个新表单上的 textedit。该表单依赖于一些网络支持代码......但这不应该与 UI 相关,不是吗?它在初始化时没有调用任何额外的代码......我真的被卡住了。有什么想法可以解决这个问题吗?提前致谢。

【问题讨论】:

  • 发布您的表单代码 + 创建表单的插槽的代码(如果您发布的不是完整的插槽)。我有兴趣查看此网络代码。
  • 这取决于您使用网络的方式以及将代码放在哪里。如果您使用了阻塞方法并且将代码放在构造函数中,那么是的,这就是原因。
  • 将计时器添加到您的代码中,并在new 之前、new 之后和show() 之后读取经过的时间。这会告诉你瓶颈在哪里。
  • 您将事件循环阻塞 8 秒。不要那样做。是的,显示代码。相关代码。

标签: c++ qt signals show slots


【解决方案1】:

通过将表单作为在主表单的构造函数中初始化的全局变量来修复它。显然 Qt 需要永远构建表单小部件。还是谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2020-04-03
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多