[Python-PMW] Notebook.setnaturalsize()

Résolu/Fermé
Utilisateur anonyme - 18 mai 2006 à 09:55
 Utilisateur anonyme - 18 mai 2006 à 15:51
Salut à tous
J'aimerais comprendre quelque chose.
J'ai créé un notebook contenant 4 pages différentes.
Je définis toutes les composantes de chacune de mes pages et un fois que tout est rempli, je fais self.notebook.setnaturalsize().
J'ai même créé une fonction rien que pour ça. Histoire de d'attendre que toutes mes pages aient le temps de se charger.
Sur la page 3, j'ai créé 3 Pmw.Group(), deux pour des zones de texte(ScrolledText) et un pour des boutons classiques.
Ma première zone de texte est remplie, tandis que la deuxième est vide pour le moment.
Quand je clique sur l'onglet de cette page, je m'aperçois que les bords de mes ScrolledText sont coupés et que la barre de défilement n'apparaît qu'à moitié.
Et là je clique sur un des boutons pour récupérer du texte et l'ajouter dans ma zone de texte vide et à la fin de refait un elf.notebook.setnaturalsize() et ô miracle, l'affichage est parfait. Rien n'est coupé. Je précise que la taille de la deuxième zone de texte n'est pas définie mais que par défaut elle est beaucoup plus grande que ce dont j'a besoin.
Si quelqu'un voit mon erreur....
Merci

6 réponses

Utilisateur anonyme
18 mai 2006 à 12:11
Non, personne n'a une petite idée?
Toi non plus Seb?
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
18 mai 2006 à 13:02
Quand je clique sur l'onglet de cette page, je m'aperçois que les bords de mes ScrolledText sont coupés et que la barre de défilement n'apparaît qu'à moitié.

Tu pourrais faire une capture d'écran ?
(et la poster sur https://imageshack.com/ par exemple, puis nous donner le lien).
0
Utilisateur anonyme
18 mai 2006 à 14:13
Voilà mon notebook 'coupé' :
http://img174.imageshack.us/img174/4259/capturetk8vo.png

Et le voilà après avoir cliqué sur le bouton :http://img465.imageshack.us/img465/5909/capturetk23wy.png
Merci
0
Utilisateur anonyme
18 mai 2006 à 14:28
Encore une précision.
Quand tu redimensionnes à la main, la taille de mon notebook ne change pas.
J'ai bien vu qu'il y avait eu un post du même type il n'y a aps très longtemps, mais je n'ai pas réussi.
Il faut bien que j'applique les options grid_columnconfigure grid_rowconfigure à mon notebook, non?
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
18 mai 2006 à 14:46
Quand je clique sur l'onglet de cette page, je m'aperçois que les bords de mes ScrolledText sont coupés et que la barre de défilement n'apparaît qu'à moitié.

Est-ce que ton notebook a bien été placé avec .grid(column=0,row=0,sticky='NSWE') ?
(J'insiste sur le sticky).

Si c'est bon, alors essai (lors de la construction des widgets) de remplir la zone de texte du bas avec un seul espace (" ").
(par exemple avec maZoneDeText.insert('0.0',' ') )
Regarde si ça corrige le problème.


par défaut elle est beaucoup plus grande que ce dont j'a besoin.

ça peut se paramétrer:
Pmw.ScrolledText(parent,text_width=70,text_height=30,...)
0
Utilisateur anonyme
18 mai 2006 à 14:56
.grid(column=0,row=0,sticky='NSWE')
C'était déjà fait.

grid(column=0,row=0,sticky='NSWE')
Je n'utilisais pas .insert() mais .settext().
J'ai essayé les deux, ça ne change rien.
J'ai toujours le même problème.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
18 mai 2006 à 15:16
mmm... difficile de dire d'où ça pourrait venir comme ça.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
18 mai 2006 à 15:19
Dac
Ce n'est pas que ce soit trop grave mais ça me turlupine.
Enfin bon...
Sinon, pour le redimensionnement automatique (cf post <4>) de mon notebook, c'est bien à lui qu'il faut que j'associe les options .grid_columnconfigure et grid_rowconfigure?
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
18 mai 2006 à 15:26
Il faut faire le grid_columnconfigure et grid_rowconfigure sur le conteneur dans lequel tu as placé des objets.

Exemple:
nb = Pmw.NoteBook((parent)
nb.grid(row=0,column=0,sticky='NSEW')
parent.grid_columnconfigure(0,weight=1)
parent.grid_rowconfigure(0,weight=1)

ça, ça forcera le notebook à s'agrandir.

Mais ça ne forcera pas ce qu'il contient à s'agrandir !

Par défaut, aucun widgets ne s'agrandit.
Il faut spécifier chaque colonnes/ligne qu'on veut qui s'agrandisse, dans chaque conteneur utilisant grid.

(C'est lourd, mais ça permet de choisir précisément les widgets qui doivent s'agrandir ou non.)
0
Utilisateur anonyme
18 mai 2006 à 15:51
Ok je te remercie
Ca a l'air lourd.
Je l'ai appliqué uniquement à mon self.root (parent de tous mes parents) et ça marche.
0