2010-03-04 6 views
3

Je souhaite ajouter une nouvelle fonctionnalité dans une classe wxPython. Je veux aussi la fonctionnalité existante car elle est plus de nouvelles fonctionnalités. Quel est le meilleur moyen d'atteindre la cible? Ce serait génial si quelqu'un peut dire une procédure étape par étape? Je suis novice à wxPython, et écrit ma première application dans wxPython.Contrôle personnalisé wxPython

En outre, quelle est la différence entre le contrôle natif et le contrôle total-dessiné par le propriétaire.

Répondre

10

Bienvenue dans wxPython! Si vous voulez créer quelque chose de personnalisé, vous voudrez sous-classer le contrôle de base que vous voulez modifier. Souvent, ce sera un wx.Panel si vous combinez plusieurs choses, mais cela peut aussi être un bouton radio, une case à cocher, et cetera. Découvrez http://wiki.wxpython.org/CreatingCustomControls qui l'explique en détail avec des exemples.

Un contrôle natif se déporte sur le système d'exploitation pour le dessin. Une case à cocher native dit essentiellement "hey OS, dessine une case à cocher pour moi", donc il va regarder comment il devrait, "natif" sur n'importe quel système, y compris se fondre dans le thème. Une case à cocher dessinée par le propriétaire est dessinée par du code personnalisé, qui sera souvent identique sur tous les systèmes. Cela offre beaucoup plus de flexibilité dans l'apparence et le comportement de votre contrôle, mais cela se fait au prix d'un aspect et d'une convivialité natifs, et souvent, il ne joue pas bien avec l'accessibilité.

Ces deux concepts ne sont cependant pas particulièrement corrélés; ce n'est pas parce qu'un contrôle est personnalisé qu'il doit être dessiné par le propriétaire, ni qu'un contrôle wxPython intégré est toujours natif.

Si vous téléchargez l'application de démo wxPython, vous pouvez trouver toutes sortes d'exemples de contrôles natifs, dessinés par le propriétaire et personnalisés. J'espère que cela t'aides!

+0

Bonne réponse, merci d'avoir clarifié la partie "juste parce qu'un contrôle est personnalisé ne signifie pas qu'il doit être dessiné par le propriétaire", c'était mon doute. – WhyNotHugo

Questions connexes