2017-10-11 15 views
0

Je travaille avec wxPython depuis un certain temps maintenant. J'ai un très bon contrôle sur la plupart des objets, et j'ai été en mesure de créer des dispositions de panneaux sans problème pour la plupart. Ce que j'essaie de faire ici est d'afficher deux listes (listes déroulantes). L'une représente la liste complète des options possibles (à gauche) que l'utilisateur peut sélectionner et ajouter à la liste sur la droite. La fonctionnalité fonctionne très bien, mais les objets eux-mêmes visuellement obscurci par d'autres panneaux contenus dans le même onglet d'un objet wxNotebook (voir rectangle rouge sur l'image ci-jointe.)wx.ComboBox se cache derrière d'autres panneaux

Combo boxes become obscured by panel containing button

le panneau supérieur est un composite de trois panneaux. Le premier contient une combo et quelques espaceurs. Le second (milieu) contient les boutons qui permettent à l'utilisateur d'ajouter/supprimer des éléments. Le troisième, comme le premier, est une combo et quelques espaceurs. Le panneau du milieu s'adapte bien, mais je ne peux pas ajuster la hauteur des combos.

Je souhaite que les zones de liste déroulante correspondent à la disposition wx.CB_SIMPLE afin que toutes les options soient affichées. Idéalement, si le nombre d'options dépasse la hauteur du panneau, je verrais une barre de défilement verticale.

Quelle serait la manière la plus simple d'accomplir ceci sans perdre les boîtes de combo derrière les autres panneaux?

Répondre

0

Je ne vois pas le besoin d'avoir 3 panneaux imbriqués à l'intérieur de votre page de bloc-notes. Au lieu de cela je créerais un panneau avec des calibreurs imbriqués. Vous pouvez créer un BoxSizer horizontal pour contenir tous les widgets. Ensuite, à l'intérieur de cela, vous pouvez ajouter la liste déroulante gauche au calibreur. Ensuite, créez un calibreur vertical dans lequel vous pouvez placer vos boutons (ajouter, supprimer, effacer).

Ajoutez ce calibreur vertical à votre calibreur horizontal. Maintenant, créez votre combobox et ajoutez-la au calibreur horizontal. Maintenant, vous avez la même configuration ou à proximité et vous n'aurez pas de panneaux qui se croisent.