Flux rss
Collection CommentÇaMarche.net
Rechercher : dans
Par :

Python [méthode .pack()]

oreilledelest, le jeudi 11 mai 2006 à 10:48:07 
 Signaler ce message aux modérateurs

Bonjour
Juste une petite question pratique.
J'utilise la méthode .pack() comme ceci :
group_iccap_var.pack(fill = 'both', expand = 1, side = 'right').
Or je voudrais que cette fenêtre soit non seulement à droite mais également en haut.
J'ai essayé " side = 'top right' ", mais il me dit qu'on ne peut lui passer comme argument que 'top, bottom, right ou left'.
On ne peut pas les associer?
Merci

1

sebsauvage, le jeudi 11 mai 2006 à 11:08:47

.pack() ?

Je ne l'utilise pas.

Si je peux te donner un conseil: utilise exclusivement .grid()
Grid possède en plus les attributs sticky (NSEW) assez pratiques.


(Attention: ne jamais mélanger .pack() et .grid())

Répondre à sebsauvage

2

oreilledelest, le jeudi 11 mai 2006 à 11:21:40

Ah bon
J'avais trouvé des exemples avec Pmw où la méthode .pack() était utilisée.
Donc je vais essayer de résoudre monproblème avec la méthode .grid()

Répondre à oreilledelest

3

oreilledelest, le jeudi 11 mai 2006 à 14:52:38

Bon alors j'ai essayé de remplacer tous les .pack() par des .grid().
J'ai bien regardé tes codes sources pour ton logiciel webgobbler (notamment le fichier webgobbler_config.py).
J'ai essayé de m'en inspirer pour refaire mon interface graphique.
Le problème est que les différentes pagedu notebook m'enpêche de voir toutes mes informations.
En fait dans la première de mon notebook (notebook.page(0), j'ai 4 groupes (définis avec Pmw.Group). Un en haut à gauche, un en haut à droite, un en bas à gauche et un en bas à droite. Pour ça, j'ai utilisé :
column = 0, row = 1
column = 0, row = 2
column = 1, row = 1
column = 1, row = 2
Mais les groupes de droite viennent se superposer sur ceux de gauche, et les groupes du bas sont coupés car notebook.page(0) n'est pas assez grande.
Y'a quelque chose que j'oublie de faire?
Merci

Répondre à oreilledelest

4

sebsauvage, le jeudi 11 mai 2006 à 15:10:18

Vérifie bien quel parent tu donne à chaque wiget que tu créé.
Parfois, en donnant le mauvais parent, il y a des superpositions.

En principe, tkinter s'arrange pour déterminer automatiquement la bonne taille de fenêtre en fonction de la taille de chaque widget.


Sinon là comme ça, je peux pas te dire ce qui ne va pas.

Répondre à sebsauvage

5

oreilledelest, le jeudi 11 mai 2006 à 16:08:28

Si tu pouvais jeter un oeil à mon code :

notebook = Pmw.NoteBook(self.root)
self._widgets['main_notebook'] = notebook
notebook.grid(column=0,row=0,sticky='NSWE')

## Add the "Appearance" page to the notebook ##
for name in ("Data", "Trace", "Exit") :
     page = notebook.add(name)

## Create the group menu ##
## Cell 1 - Input
group_input = Pmw.Group(notebook.page(0), tag_text='Input')
group_input.grid(column = 0, row = 1, columnspan = 2, sticky ='NSEW', padx = defaultPadding, pady = defaultPadding, ipadx = defaultPadding, ipady = defaultPadding)

## Cell 2 - Iccap Param
group_iccap = Pmw.Group(notebook.page(0), tag_text='Iccap Param')
group_iccap.grid(column = 1, row = 1, rowspan = 2, sticky ='NSEW', padx = defaultPadding, pady = defaultPadding, ipadx = defaultPadding, ipady = defaultPadding)


Rien que ça, je ne vois pas mes groupes entièrement.
Je distingue juste 'Ic' du 2ème groupe et rien du premier groupe.
Merci

Répondre à oreilledelest

6

sebsauvage, le jeudi 11 mai 2006 à 16:23:43

C'est parceque tes groupes sont vides.
Chaque conteneur (groupe, frame, page...) s'adapte automatiquement à la taille de ce qu'on lui demande de contenir.

Il suffit donc de les remplir.
Exemple:

import Tkinter
import Pmw

class myApplication: 
    def __init__(self,root):
        self.root = root      
        self._widgets = {}
        self.initialisation()  

    def initialisation(self):     
        notebook = Pmw.NoteBook(self.root)
        self._widgets['main_notebook'] = notebook
        notebook.grid(column=0,row=0,sticky='NSWE')
        for name in ("Data", "Trace", "Exit") :
             page = notebook.add(name)
        
        group_input = Pmw.Group(notebook.page(0), tag_text='Input')
        group_input.grid(column = 0, row = 0,sticky ='NSEW')
        
        group_iccap = Pmw.Group(notebook.page(0), tag_text='Iccap Param')
        group_iccap.grid(column = 1, row = 0,sticky ='NSEW')

        Tkinter.Button(group_input.interior(),text="coucou1*************").grid(column=0,row=0)
        Tkinter.Button(group_iccap.interior(),text="coucou2**************").grid(column=0,row=0)
        
def main():
    root = Tkinter.Tk()
    root.title('My application')
    app = myApplication(root)
    root.mainloop()

if __name__ == "__main__":
    main()




Par contre, je ne comprend pas pourquoi tu fais un rowspan (je l'ai supprimé dans le code ci-dessus).

Répondre à sebsauvage

7

sebsauvage, le jeudi 11 mai 2006 à 16:24:35

(oups, dans mon exemple, remettre les deux Tkinter.Button(...) au même niveau que group_iccap.grid(...)

Répondre à sebsauvage

8

sebsauvage, le jeudi 11 mai 2006 à 16:25:25
Répondre à sebsauvage

9

oreilledelest, le jeudi 11 mai 2006 à 16:31:33

En effet dans le code que j'ai donné, je n'ajoutais aucune valeur. Mais dans mon vrai code, je le faisais.
En fait, j'ai supprimé columnspan et rowspan et ça a l'air de fonctionner.
Comme tu l'utilisais dans ton code, je l'avais mis aussi (ça m'apprendra à réfléchir un peu plus..)
Je finis mes tests et je posterai un message pour dire si ça marche.
Enocre merci

Répondre à oreilledelest

10

oreilledelest, le jeudi 11 mai 2006 à 16:54:43

Bon ça marche.
Les problèmes venaient des 'rowspan' et 'columnspan'.
Merci

Répondre à oreilledelest

11

 sebsauvage, le jeudi 11 mai 2006 à 17:17:31

Good.

Répondre à sebsauvage
[JAVA] JPanel et pack() (Résolu) Salut à tous! Je fais actuellement un programme java avec plusieurs JPanel dans un container. Je dois imposer une taille à un de ceux-ci (il contient une image et je veux lui conserver sa taille) et j'utilise la méthode pack(). Seulement, en faisant... www.commentcamarche.net/forum/affich-3078118-java-jpanel-et-pack
[Python] affichage au lancement d'un script Bonjour Je suis (très) débutant dans la programmation. J'ai choisi de commencer avec Python version 2.4.1 J'utilise l'ouvrage "Apprendre à programmer avec Python" de Gérard SWINNEN. Je me sert de WordPad version 5.1 pour écrire mes scripts. Mon... www.commentcamarche.net/forum/affich-2660148-python-affichage-au-lancement-d-un-script
[Python] Lancer une appli via python (Résolu) Bonjour J'utlise la méthode Popen() pour lancer une application, mais je voudrais savoir si on pouvait lancer une application en y joignant un fichier. Je m'explique : C'est comme si avec la méthode Popen(), je voulais lancer un programme en python.... www.commentcamarche.net/forum/affich-2231600-python-lancer-une-appli-via-python
[Python] Lire et écrire des fichiers CSVLIRE ET ÉCRIRE DES FICHIERS CSV Python www.python.org, dans sa version 2.4 supporte de facto le format CSV (comma-separated values: valeurs séparées par des virgules). La Library Reference est certes très explicative à ce... www.commentcamarche.net/faq/sujet-2382-python-lire-et-ecrire-des-fichiers-csv
Votre première application graphique avec Python et GladeCe guide vous aidera à créer pas à pas votre première application graphique. Nous allons utiliser le langage de programme Python et l'API graphique GTK, en utilisant le logiciel Glade pour créer facilement les interfaces graphiques. C'est de la... www.commentcamarche.net/faq/sujet-8014-votre-premiere-application-graphique-avec-python-et-glade
Google Pack - Installer le packCochez les cases en regard des logiciels souhaités, puis cliquez sur le bouton « Télécharger Google Pack ». L’outil de mise à jour Google est copié sur le disque dur ; c’est lui qui se charge de rapatrier les fichiers d’installation des différentes... www.commentcamarche.net/faq/sujet-15093-google-pack-installer-le-pack
Affichage accents dans les listes en Python (Résolu)Bonjour, En Python, lorsque j'utilise la méthode "append" pour ajouter des éléments à mes listes, j'ai un problème avec l'affichage des accents. Par exemple, si la valeur de ma variable est "Février", je reçois en sortie par la méthode append... www.commentcamarche.net/forum/affich-10961101-affichage-accents-dans-les-listes-en-python
[python]Générer et invoquer un évènement (Résolu)Salut tout le monde, Est ce qu'il y a moyen de définir un évènement dans une classe Python pour pouvoir l'invoquer quand cet objet change? Merci Goutez l'amer ... Buvez le vinaigre www.commentcamarche.net/forum/affich-2440766-python-generer-et-invoquer-un-evenement
[Python] manipuler un stringCher CCM-eurs Je suis (encore!) debutant en Python, je cherche transformer une string contenant des nombres et des virgules, points-virgule, \n ou \t en une liste de nombres. La methode .split ne prend qu'un argument: je ne peux qu'enlever un des... www.commentcamarche.net/forum/affich-1955853-python-manipuler-un-string
Télécharger Pack de compatibilité Microsoft Office 2007En installant le pack de compatibilité pour Microsoft Office 2000, Office XP ou Office 2003, vous pouvez ouvrir, modifier et enregistrer des fichiers à l'aide des nouveaux formats de fichier Word, Excel et PowerPoint 2007. Le pack de compatibilité... www.commentcamarche.net/telecharger/telecharger-34055375-pack-de-compatibilite-microsoft-office-2007
Télécharger DVD Decoder PackDVD Decoder Pack est tout simplement un ensemble de codec permettant à Windows 2000, Windows XP ou Windows Vista de lire un DVD à partir de Windows Media Player. Son lecteur intégré prend en charge les vidéos MPEG-2, permet de naviguer à travers un... www.commentcamarche.net/telecharger/telecharger-34055204-dvd-decoder-pack
Télécharger K-Lite Codec Pack FullK-Lite Codec Pack est une collection de codecs et de filtres nécessaires pour encoder ou décoder des formats audio ou vidéo. K-Lite Codec Pack Full embarque l'ensemble des codecs et filtres nécessaires pour la plupart des formats audio et vidéo... www.commentcamarche.net/telecharger/telecharger-140-k-lite-codec-pack-full
Rock Band: Track Pack -- Volume 2Also Available on:Wii, PlayStation 2, Xbox 360, Genre:Musique, Nb. de joueurs hors-ligne:1, Avis ESRB:13+, Développeur:Harmonix, Autres:Rock Band Track Pack 2, Rock Band Track Pack: Vol. 2 www.commentcamarche.net/guide/1228766-rock-band-track-pack-volume-2
Méthodologie de gestion de projetLa gestion de projet - La nécessité d'une méthodologie claire On appelle « gestion de projet » (éventuellement « conduite de projet ») l'organisation méthodologique mise en œuvre pour faire en sorte que l'ouvrage réalisé par le maître... www.commentcamarche.net/contents/projet/projetmet.php3
Méthodes agiles (RAD, XP)Méthodes agiles Les méthodes de développement dites « méthodes agiles » (en anglais Agile Modeling, noté AG) visent à réduire le cycle de vie du logiciel (donc accélérer son développement) en développant une version minimale, puis en intégrant les... www.commentcamarche.net/contents/genie-logiciel/methodes-agiles.php3
Java: Les méthodesLa notion de fonction et de méthode On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs... www.commentcamarche.net/contents/java/javafonc.php3