qt - Qt,仅显示大型QImage一部分的低成本方法

标签 qt audio scroll qpainter qimage

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

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

因此,我必须在内存中保留较大的QImage才能快速滚动。另一个设计会比较慢,因为每次用户滚动屏幕时都需要我重画QImage(QImages)。

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

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

最佳答案

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

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

关于qt - Qt,仅显示大型QImage一部分的低成本方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8851649/

相关文章:

javascript - JQuery - 单击时更改音频歌曲?

wpf - 当 TextBox 位于非事件选项卡中时,TextBox.ScrollToEnd 不起作用

java - 如何从向下滚动固定次数的网页中提取HTML数据?

listview - 调整平面按钮的大小并在 flutter 中提供水平滚动选项

c++ - qml : data models in models 中的嵌套列表

c++ - 如何将图像加载到 painter.drawimage 函数

c++ - QT:使用字段间规则进行表单验证

c# - 如何从另一个应用程序读取 QTextEdit 内容?

java - Android 用户界面停止响应

objective-c - 无法从 cocoa Objective-C 的任何音频设备获取输出音量