3

我正在开发一个用户能够检查音频波形的 Qt 应用程序。给定典型的 44.1kHz 采样波,要求波形可缩放到每个样本至少 10 个像素,以及 QWidget 的最大宽度,这将我的波形长度限制为 38 秒 (16777215/44100/10)。但在我的应用程序中,波形的长度可能超过 10 分钟。

现在很明显,当放大到这么远时,用户将永远无法在一个显示器上查看整个波形。这就是为什么我把它放在一个(水平的)QScrollArea 里面。波形小部件有一个自定义绘制事件,允许它有选择地在屏幕上渲染可见部分,因此它能够处理任何理论宽度。但是 QScrollArea 对这样的大小感到厌烦。

那么如何制作一个可以处理大尺寸的滚动条呢?


这是我的应用程序的图像,可帮助您可视化问题(请注意,波形应该显示为像素化,因为它确实如此):

放大波形

这是我在调用小部件时收到的确切错误消息setFixedSize

QWidget::setMinimumSize: (/ui::SamplerView) The largest allowed size is (16777215,16777215)
QWidget::setMaximumSize: (/ui::SamplerView) The largest allowed size is (16777215,16777215)
4

1 回答 1

2

假装它:使用水平滚动条作为滑块,让小部件在考虑滚动条位置的情况下进行一些自定义绘画(连接到 valueChanged 信号)

于 2013-09-18T07:28:34.347 回答