gpt4 book ai didi

c++ - Qt - 如何解决 QScroller 最大尺寸限制(16777215 像素)

转载 作者:太空狗 更新时间:2023-10-29 21:44:57 27 4
gpt4 key购买 nike

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

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

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


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

zoomed-in waveform

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

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

最佳答案

假装:使用水平滚动条作为 slider ,让小部件根据滚动条位置(连接到 valueChanged 信号)进行一些自定义绘制

关于c++ - Qt - 如何解决 QScroller 最大尺寸限制(16777215 像素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18865336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com