我在QImage中绘制WAV文件的频谱(例如:http://savepic.net/2350314.jpg)。考虑到良好的时间分辨率,WAV文件可能足够长,不适合屏幕。
我需要能够足够快地遍历整个文件,可能没有文件系统读取操作。
所以我必须在内存中保留大的QImage以便快速滚动。另一个设计会变慢,因为每次用户滚动屏幕时都需要重绘QImage(QImages)。
假设在内存中保留大QImage的设计(例如1024x50000),我必须能够在程序窗口中显示那个大QImage的某些部分。
成本最低的解决方案是什么?使用QScrollArea还是使用带偏移参数的QPainter方法drawImage()?
答案 0 :(得分:1)
我肯定会构建一个小的自定义窗口小部件,并使用QPainter重新实现其paint()方法(并使用偏移量滚动等)。
使用QPixmap显示图像所需的部分应该比原始绘制(一部分)QImage更快。