Qt,低成本的方式只显示大部分QImage

时间:2012-01-13 13:56:07

标签: qt audio scroll qpainter qimage

我在QImage中绘制WAV文件的频谱(例如:http://savepic.net/2350314.jpg)。考虑到良好的时间分辨率,WAV文件可能足够长,不适合屏幕。

我需要能够足够快地遍历整个文件,可能没有文件系统读取操作。

所以我必须在内存中保留大的QImage以便快速滚动。另一个设计会变慢,因为每次用户滚动屏幕时都需要重绘QImage(QImages)。

假设在内存中保留大QImage的设计(例如1024x50000),我必须能够在程序窗口中显示那个大QImage的某些部分。

成本最低的解决方案是什么?使用QScrollArea还是使用带偏移参数的QPainter方法drawImage()?

1 个答案:

答案 0 :(得分:1)

我肯定会构建一个小的自定义窗口小部件,并使用QPainter重新实现其paint()方法(并使用偏移量滚动等)。

使用QPixmap显示图像所需的部分应该比原始绘制(一部分)QImage更快。