【发布时间】: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 秒。不要那样做。是的,显示代码。相关代码。