2009-03-24 10 views
1

Je dessine dans une fenêtre wx.Window en utilisant un PaintDC. Je dessine des cercles et des trucs comme ça dans cette fenêtre. Le problème est, parfois les cercles sortent du cadre de la fenêtre. Je veux qu'une barre de défilement apparaisse automatiquement chaque fois que le dessin devient trop grand. Que fais-je?wxPython: Création d'un DC défilant

Répondre

1

Utilisez un wx.ScrolledWindow et définir la taille de la fenêtre dès que votre «dessin aller à l'extérieur de la fenêtre avec

SetVirtualSize(width,height) 

Si cette taille est plus grande que la taille du client, puis WX montrera les barres de défilement. Lorsque vous dessinez dans la fenêtre, assurez-vous d'utiliser CalcUnscrolledPosition et CalcScrolledPosition

Here vous pouvez trouver plus d'informations.

+0

Je n'ai pas entièrement compris. Ai-je besoin de calculer par moi-même la largeur et la hauteur des dessins? Parce que je ne comprends pas comment obtenir les entrées "width" et "height" pour SetVirtualSize. –

+0

Si votre cercle est plus large de 10 pixels que votre écran, ajoutez 10 à la taille du client actuel et vous obtenez la nouvelle largeur. – RSabet

+0

Désolé, je ne comprends pas encore. Supposons que je dessine toutes sortes de choses différentes dans ce DC. Est-ce ma responsabilité de garder une trace de combien d'espace mon dessin prend? –