1

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

我需要能够足够快地浏览整个文件,可能不需要文件系统读取操作。

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

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

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

4

1 回答 1

1

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

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

于 2012-01-13T14:01:22.680 回答