IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec Python Discussion :

Récuperer la valeur d'un widget text


Sujet :

GTK+ avec Python

  1. #1
    darkloy
    Invité(e)
    Par défaut Récuperer la valeur d'un widget text
    Bonjour à tous.
    Je me suis mis il y'as quelques jours à Python, le language me plaît énormement, et maintenant je veux m'attaquer à PYGTK .
    J'avais réalisé un script qui renomme toutes les photos présentes dans un dossier .Je veux maintenant le faire fonctionner avec pygtk .J'ai donc crée l'interface avec glade :

    1 widget pour aller chercher le fichier que j'ai nommé 'dossier'
    1 widget pour le nouveau nom des images nommé 'name'
    1 widget bouton

    quand je clique sur le bouton, j'arrive à mettre à jour un label pour dire que c'est en traitement .
    Le problème c'est que je n'arrive pas à trouver comment récupèrer les valeurs des widgets

    Il me semble après avoir passés près d'une heure dans le forum, qu'il faut utiliser la methode get_text()
    Mais ca ne marche pas .

    Voici le code, si quelqu'un peu me dire la bétise que j'ai faite ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    #!/usr/bin/python
    # -*- coding: iso-8859-1 -*-
    import pygtk
    pygtk.require("2.0")
    import gtk
    import gtk.glade
     
     
    #Fonction qui renvoie 'true' sur Str char est present dans List ary
    def in_list(char,ary):
    	cpt = 0
    	a = 0
    	#On parcours le tableau
    	while(cpt<len(ary)):
    		#Si la valeur n'est pas egale a la chaine
    		if(ary[cpt] == char):
    			a = 1
    		cpt = cpt + 1
    	if (a == 1):
    		return 'true'
    	else :
    		return 'false'
     
     
     
    class programme:
        def __init__(self):
            self.widgets = gtk.glade.XML('/home/laurent/EPR/interface.glade',"window1")
            events = { 'on_renommer_clicked': self.rename,
                       'delete': self.delete               }
            self.widgets.signal_autoconnect(events)
     
        def delete(self, source=None, event=None):
    	gtk.main_quit()
     
        def rename(self, source=None, event=None):
    	self.widgets.get_widget('process').set_text('En cours de traitement')
    	#On recupere le dossier
    	rep = self.widgets.get_widget('dossier').get_text()
    	#On recupere le nouveau nom
    	name = self.widgets.get_widget('name').get_text()
    	#Repertoire contenant les images :
    	repertList = os.listdir(rep)
     
    	#Nombre de fichiers dans le dossier
    	nbFile = len(repertList)
     
    	if((confirm == 'Y')or(confirm == 'y')): #On traite			
    				a = 0 #Compteur
    				#Tant qu'il y'as des fichiers
    				while(a < nbFile):
    					#On cherche si c'est un fichier en cherchant un point
    					cpt = repertList[a].count('.')
    					#Si c'est un fichier
    					if(cpt > 0):
    						#On decoupe afin de recuperer l'extension
    						fichier = repertList[a].split('.')
    						#On force l'extension en minuscule
    						ext = fichier[1].lower()
    						#SI c'est une image
    						if(in_list(ext,extOk) == 'true'):
    							#On prepare les variables
    							initFile = rep+'/'+repertList[a]
    							newFile = rep+'/'+name+'_'+str(a)+'.'+fichier[1]
    							#On renomme le fichier
    							os.rename(initFile,newFile)
     
    					a=a+1
     
    	#On ferme l'application
    	gtk.main_quit()
     
    if __name__ == '__main__':
        app = programme()
        gtk.main()
    Merci de votre aide

    Désolé, j'ai fait l'idiot, j'ai mal posté le message, si un modérateur peux le déplacer dans le forum correspondant ....Désolé !!
    Dernière modification par darkloy ; 15/01/2009 à 08h20. Motif: posté au mauvais endroit

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par darkloy Voir le message
    Mais ca ne marche pas .

    C'est à dire ? Tu pourrais être plus précis

  3. #3
    darkloy
    Invité(e)
    Par défaut
    Salut gege2061!

    Merci de me répondre .

    Le bouton fonctionne, car il me change bien la valeur du label .Par contre, je n'arrive pas à récupérer les valeurs des 'Entry' qui contiennent le repertoire et le nouveau nom .J'ai passé beaucoup de temps, et rien à faire, je ne trouve pas .

    Si joint, je t'ai mis le fichier, si tu veux voir la réaction du script, je pense avoir assez commenté, si tu veux y jeter un oeil, je t'en serais très reconnaissant .

    J'aurais aussi d'autres questions, si tu as le temps (je veux pas jouer le lourd non plus !)

    Quand j'écris dans mon fichier .Py, des accents, mon script ne marche pas, malgrès le:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # -*- coding: iso-8859-1 -*-
    Si je mets pas le chemin absolu ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.widgets = gtk.glade.XML('interface.glade',"window1")
    mon fichier glade n'est pas chargé.

    Merci de ton aide, je suis vraiment intéressé par ce langage, et en particulier la librairie GTK
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Je parlais d'éventuelle message d'erreurs, comme je n'ai pas pyggtk d'installer, je ne peux pas tester

    gtk.glade.XML.get_widget retourne un gtk.Widget, il faut peut être forcer le type gtk.Entry.

  5. #5
    darkloy
    Invité(e)
    Par défaut Merci
    Ok, je te remercie beaucoup, je vais tester ça !!

  6. #6
    darkloy
    Invité(e)
    Par défaut
    Je n'y arrive toujours pas ...snif

    Je vais encore fouiller la toile !!
    merci !

Discussions similaires

  1. récuperer une valeur dans un champ text dans un rdlc
    Par Msysteme dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/04/2015, 12h01
  2. récuperer les valeurs d'un input text
    Par mido393 dans le forum Langage
    Réponses: 5
    Dernier message: 20/04/2014, 00h36
  3. Récuperer une valeur dans un fichier texte
    Par sucrepop dans le forum Langage
    Réponses: 6
    Dernier message: 05/06/2007, 15h01
  4. [Spring MVC] récuperation de la valeur d un champ texte
    Par iftolotfi dans le forum Spring Web
    Réponses: 2
    Dernier message: 26/05/2006, 16h44
  5. Réponses: 1
    Dernier message: 02/12/2005, 05h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo