0

現在、wx.PaintDCのデバイスコンテキストを使用してペイントイベントに応答して線やテキストなどを描画するwxPanelがあります。ただし、私の描画はパネルのサイズを超える可能性があり、表示されている画面からは外れ続けます。より多くの図面を表示する唯一の方法は、アプリケーションウィンドウを拡大することです。これは実用的ではなく、非常に大きな図面の場合は、完全な図面を表示できない場合があります。理想的には、アプリケーションウィンドウのサイズを変更する必要がなく、大きな図面が表示されるように、図面をスクロールできるようにしたいです。

周りを見回すと、wxPanelの代わりにwxScrolledPanelを使用したいようです。ただし、これを使用することに成功していません-wxScrolledPanelの使用は、デバイスコンテキストにペイントするのではなく、コントロール(ボタン、テキストフィールドなど)を使用する場合にのみ機能しますか?

描かれたパネルをスクロールする適切な方法は何ですか?

4

2 に答える 2

2

ScrolledPanelで動作するはずですが、パネルに他のウィジェットを配置しない場合は、仮想サイズを設定するサイザーがあるかどうかに依存するため、おそらく正しい答えではありません。

代わりにwx.ScrolledWindowを使用してみてください。いくつかのコードについては、デモでそのサンプルを参照してください。基本的には、ウィンドウの仮想サイズを設定するだけで、スクロールバーとスクロールが自動的に処理されます。また、ペイントイベントハンドラーでPrepareDCを呼び出して、スクロールされたビューポートの原点に一致するように描画をオフセットする必要があります。

于 2013-02-28T22:06:32.743 に答える
1

StackOverflowで、おそらく見たいと思う次の回答を見つけました。

これらの回答はwx.ScrolledWindowに焦点を当てているようですが、これらの回答の概念を使用して、ScrolledPanelで使用できると思います。私はまた、この問題に関するこの興味深いスレッドを見つけました:

于 2013-02-28T22:08:07.920 に答える