ユーザーがオーディオ波形を検査できるQtアプリケーションに取り組んでいます。典型的な 44.1kHz でサンプリングされた波形、波形がサンプルごとに少なくとも 10 ピクセルまでズーム可能であるという要件、および QWidget の最大幅を考えると、これは私の波形の長さを 38 秒 (16777215/44100/10) に制限します。しかし、私のアプリケーションでは、波形の長さが 10 分以上になる可能性があります。
明らかに、ここまで拡大すると、1 つのディスプレイに波形全体を表示することはできません。そのため、(水平) 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)