pyqt5程序频繁调用setstylesheet导致内存持续增加

在在Windows上的pyqt5程序内存正常,而在银河麒麟上使用pyqt5程序频繁调用setstylesheet导致内存持续增加,问下大家如何解决这个问题。

img


程序中数据更新很快更改颜色或图片也很快所以很多地方调用setStylesheet。

预加载。

【相关推荐】



  • 文章:pyqt5 使用setStyleSheet设置单元格的边框样式 中也许有你想要的答案,请看下吧
  • 除此之外, 这篇博客: PyQt学习笔记-PyQt5窗口设计基础中的 3.1 通过setStyleSheet()函数设置窗口背景 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    在使用setStyleSheet()函数设置窗口背景时,需要以background-color或者border-image的方式来进行设置,其中background-color可以设置窗口的背景颜色,而border-image可以设置窗口的背景图片。

    通过setStyleSheet()函数来设置窗口背景颜色的代码如下:

    MainWindow.setStyleSheet("#MainWindow{background-color:red}")
    

    在这里插入图片描述

    在使用setStyleSheet()函数设置窗口的背景色之后,窗口中的控件会继承窗口的背景色,如果想要为控件设置背景图片或者图标,需要使用setPixmap或者setIcon()函数来实现。

    在使用setStyleSheet()函数设置背景图片时,需要设置包括背景图片的文件夹,因为代码会用到图片的路径,这里将图片文件夹放到与.py文件同一目录下的image文件下。

    在这里插入图片描述

    之后在Pycharm项目中的代码添加:

    MainWindow.setStyleSheet("#MainWindow{border-image:url(image/back.jpg)}") # 设置背景图片
    

    在这里插入图片描述

    除了在setStyleSheet()函数中使用border-image方式设置窗口的背景图片外,还可以使用background-image方式进行设置:

    MainWindow.setStyleSheet("MainWindow{background-image:url(image/back.jpg)}")
    

    但是这种方式显示的背景图片是平铺显示
    在这里插入图片描述


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

人的肉眼识别不了太高频率的界面刷新,计算机的刷新频率也存在性能的局限性。
所以我们没有必要非得来一个信号就刷新一次。
可以采用定时器+标志位的方式刷新界面:
标志位初始为false,当界面有更新时将标志位设置为true;
定时器定时每隔200ms检查标志位,为true则刷新界面,然后将标志位设置为false
你的肉眼根本来不及看200ms内的界面变化,界面刷新一次200ms也足够长了