2009-03-24 7 views
1

Ich zeichne in einem wx.Window mit einem PaintDC. Ich zeichne Kreise und solche Sachen in dieses Fenster. Problem ist, manchmal gehen die Kreise außerhalb des Bereichs des Fensters. Ich möchte eine Bildlaufleiste automatisch erscheinen, wenn die Zeichnung zu groß wird. Was mache ich?wxPython: Erstellen eines scrollbaren DC

Antwort

1

Verwenden Sie ein wx.ScrolledWindow und die Größe des Fensters gesetzt, sobald Ihre ‚Zeichnung nach draußen gehen‘ das Fenster mit

SetVirtualSize(width,height) 

Wenn diese Größe größer als die Client-Größe ist, wx dann Scrollbalken zeigen. Wenn Sie in das Fenster zeichnen, stellen Sie sicher, dass Sie CalcUnscrolledPosition und

Here verwenden können Sie weitere Informationen finden.

+0

Ich habe es nicht vollständig verstanden. Muss ich selbst berechnen, wie viel Breite und Höhe die Zeichnungen haben? Weil ich nicht verstehe, wie man die Eingaben "width" und "height" für SetVirtualSize bekommt. –

+0

Wenn Ihr Kreis 10 Pixel breiter als Ihr Bildschirm ist, fügen Sie 10 zur aktuellen Client-Größe hinzu und Sie haben die neue Breite. – RSabet

+0

Sorry, das verstehe ich noch nicht. Angenommen, ich zeichne alle möglichen Dinge in diesen DC. Ist es meine Verantwortung, zu verfolgen, wie viel Platz meine Zeichnung einnimmt? –