なぜ、この:予想通りQGraphicsView fitInViewマージンが
graphics_view->fitInView(scene->sceneRect(), Qt::KeepAspectRatio);
は動作しませんか?シーンの矩形を正しくフィッティングすることができず、マージンが表示されます。
なぜ、この:予想通りQGraphicsView fitInViewマージンが
graphics_view->fitInView(scene->sceneRect(), Qt::KeepAspectRatio);
は動作しませんか?シーンの矩形を正しくフィッティングすることができず、マージンが表示されます。
私は問題が何であるかを知りました。this questionに記載されています。問題の主な原因は、フォームが表示される前にfitInViewを呼び出さないことです。
実際には、マージンだけで何を意味しているのかによって決まります。リンクした質問の中で、これらの巨大な問題に遭遇した可能性もあります。それにもかかわらず、フォームが表示される前に、必要なものだけfitInViewを呼び出すことができます。 –
ドキュメントから: -
RECTシーンRECT内でなければなりません。それ以外の場合、fitInView()はrect全体が表示されることを保証することはできません。
それはしっかりと適合しない場合も...
RECTは、ビューの中央に配置されます。
最後に
RECTが空である、またはビューポートが小さすぎる場合、この関数は何もしません場合。
原因は次のとおりです。 https://bugreports.qt.io/browse/QTBUG-42331 - qtバグトラッカーで優先度を付けて投票してください。
要するに、fitInViewには余白がハードコードされているため、すべての種類の不具合が発生する可能性があります。これは、表示領域のピクセル数が少なくなり、不必要な再スケーリングが発生する可能性があることです。
既存の実装に基づいてfitInViewを再実装することで問題を解決できますが、それはばかげた余白を取り除くことができます。あなたはしかし、マージンを含めずに、元fitInViewメソッドを実装し直すそれを修正することができ
https://github.com/nevion/pyqimageview/blob/master/qimageview/widget.py#L276
:それの例は、元のC++版に基づいて、ここでのpythonで利用可能です。私のC++ソリューションをチェックしてください:https://stackoverflow.com/a/42474510/6050364
最小のコード例とスクリーンショットを追加し、期待されるものとどのように違うのですか? –