gpt4 book ai didi

python - 优化 PyQt 应用程序

转载 作者:太空狗 更新时间:2023-10-29 22:23:43 25 4
gpt4 key购买 nike

对于那些编写过相当复杂的 PyQt 应用程序的人,您会提供哪些提示和技巧来加速您的应用程序?我有几个例子说明我的程序在变大时开始变慢的地方:

  • 我编写了一个“仪表板”,当用户单击 TreeWidget 中的项目时,它会被销毁并重新创建。什么是拥有模块化界面的更好方法,在该界面中单击 TreeWidget 中的项目会更改仪表板,但不需要销毁小部件并重新创建它。

  • 每个仪表板还从网络位置加载图像。当人们在应用程序中导航时,这会造成一些减速,但在将其加载到内存中后,“返回到相同的破折号”会更快。是否有一种好的方法或方式可以在程序加载时运行一个线程,该线程可能会将图像预加载到内存中?如果是这样,您将如何实现?

  • 当您有各种各样的仪表板项和加载到其中的数据时,你们通常会线程化数据加载并加载回每个线程完成的数据吗?当有人快速浏览时,这可行吗?是否会为线程实现终止开关,以便当用户更改仪表板时,线程会停止工作?或者,线程的不断创建和终止会导致某种崩溃吗?

很抱歉提出了一大堆问题,但它们似乎足够相似,值得将它们捆绑在一起。

最佳答案

我不确定这是否与您正在做的完全相同,但这听起来与我在某些应用程序中所做的类似,其中有一些自定义小部件列表。当您创建和销毁大量小部件时,它的速度确实会显着降低。

如果它是小部件总数较少的问题,但只是被创建和删除了很多,您可以只创建一次小部件,并且只在需要更新信息时更改这些小部件的数据......相反每次信息更改时创建新的小部件。这样,您甚至可以更改线程中的数据,而不必担心创建小部件。

另一种情况是,您要显示带有自定义小部件的列表,并且有大量结果。我注意到当列表中有 1000 个自定义小部件时,它总是会变慢。我的同事想出的一个技巧是有一个假的列表,它在显示器中使用静态数量的插槽。比如说,它在 View 中显示了 10 个插槽。滚动条并没有真正向下滚动 MORE 小部件......它所做的是通过 10 个可见小部件滚动数据。这样做你可以疯狂地提高性能。但前提是它是您的应用程序可以接受的显示样式。

关于python - 优化 PyQt 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6764329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com