[Python-PMW] Notebook.setnaturalsize()
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
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
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
A voir également:
- [Python-PMW] Notebook.setnaturalsize()
- Citizen code python avis - Accueil - Outils
- \R python ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
- Citizen code python solution - Forum Python
6 réponses
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).
Tu pourrais faire une capture d'écran ?
(et la poster sur https://imageshack.com/ par exemple, puis nous donner le lien).
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?
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?
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,...)
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,...)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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?
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?
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.)
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.)