Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
nombre réponses : 25

#0 Re : -1 »  ligne de commande pour augmenter/récupérer le niveau d'entrée du micro » Le 17/02/2015, à 12:37

totola
Réponses : 7

Bonjour,
je reprends mon ancien fil car on reste dans le même sujet: j'aimerai maintenant récupérer la valeur du signal capté par le micro... du genre:

amixer -q -D pulse get Capture

mais ça ne fonctionne pas aussi simplement... hmm

Merci de l'aide!

#1 -1 »  python: changer couleur texte widget dynamiquement » Le 16/02/2015, à 15:53

totola
Réponses : 1

Bonjour,

j'ai un widget Tkinter Checkbutton


bouton1=Tkinter.Checkbutton(self,variable=retour1,onvalue=1, offvalue=0, text="Poste 1", fg=self.couleur[1])

avec self.couleur[1] qui peut changer (soit 'red', soit 'green') durant l’exécution du programme.

Comment faire pour que le changement de couleur soit effectif sur le texte du bouton?

Merci

#2 Re : -1 »  python: changer couleur texte widget dynamiquement » Le 16/02/2015, à 16:28

totola
Réponses : 1

J'ai trouvé comme ça:

def callbackcolor1():
	while(True):	
		bouton1.configure(fg=self.couleur[1])
		time.sleep(5)
tcolor = threading.Thread(target=callbackcolor)
tcolor.start()

Il y aurait mieux??

Merci

#3 -1 »  [RÉSOLU] python: fonction avec argument » Le 14/02/2015, à 18:32

totola
Réponses : 10

Bonjour,
tout d'abord merci car grâce à vous j'ai réussi à faire ce que je voulais! smile
Maintenant je suis dans la simplification et la réécriture de mon programme. Pour celà j'essaie de définir le maximum de fonctions.
J'aimerai donc définir une fonction avec le bout de code suivant avec comme argument un nombre (2 ici):


p2=poste2.get()
ConnecterSSH(str(2))
run("rm -r /home/{}".format(UserBureau + p2))

J'aimerai que ma fonction Effacer(numero) execute ce code simplement avec Effacer(2). Seulement je bloque... hmm

Merci

#4 Re : -1 »  [RÉSOLU] python: fonction avec argument » Le 14/02/2015, à 19:03

totola
Réponses : 10

Oui, merci, ça j'arrive, mais j'aimerais aussi remplacer tous les autres 2, genre:

def Effacer(valeur) :
    p"valeur"=poste"valeur".get()
    ConnecterSSH(str(valeur))
    run("rm -r /home/{}".format(UserBureau + p"valeur"))

C'est là où je bloque...

Merci

#5 Re : -1 »  [RÉSOLU] python: fonction avec argument » Le 14/02/2015, à 19:41

totola
Réponses : 10
D@mien. a écrit :

Salut
Et comme çà?

def Effacer(valeur) :
    main = __import__('__main__')
    klass = main.__dict__['post'+value]
    value=main.__dict__["p"+valeur]=klass.get()
   [...]

ça ne serait pas plutôt:

main = __import__('__main__')
klass = main.__dict__['poste'+str(valeur)]
value=main.__dict__["p"+str(valeur)]=klass.get()

Mais ça produit une erreur:

klass = main.__dict__['poste'+str(valeur)]
KeyError: 'poste1'

#6 Re : -1 »  [RÉSOLU] python: fonction avec argument » Le 14/02/2015, à 19:48

totola
Réponses : 10
pingouinux a écrit :

À tester (exec est une commande potentiellement dangereuse) :

def Effacer(valeur) :
    cmd='''p%d=poste%d.get()
ConnecterSSH(str(%d))
run("rm -r /home/{}".format(UserBureau + p%d))'''%((valeur,)*4)
    exec(cmd)

Oui... j'ai une erreur avec la commande exec..

#7 Re : -1 »  [RÉSOLU] python: fonction avec argument » Le 15/02/2015, à 12:48

totola
Réponses : 10

J'ai trouvé quelque chose qui me convient:

D'abord faire une liste:

poste = [Tk.Entry(..), Tk.Entry(...), ...]etc...

Puis ma fonction:

def effacer(num_poste):
    bureau = "{0}{1}".format("UserBureau", poste[num_poste].get())
    run("rm -r /home/{}".format(bureau))

Et voilà,
Merci à tous pour les pistes

#8 Re : -1 »  [RÉSOLU] python: fonction avec argument » Le 16/02/2015, à 14:28

totola
Réponses : 10
D@mien. a écrit :

Re

Par contre, on voit que mon python est rouillé, la fonction `globals()` est fait pour çà si l'objet se trouve dans le namespace smile

class abc1():
	pass

abc2 = abc1()

abc3 = "une variable"

def abc4():
	pass

def getobj(var):
    print(globals()['ab'+var])

getobj('c1')
getobj('c2')
getobj('c3')
getobj('c4')
# <class 'test.test.abc1'>
# <test.test.abc1 object at 0x7f8164caf320>
# une variable
# <function abc4 at 0x7f8164d35d08>

Salut,

En fait je n'ai pas bien compris ton exemple... Mais j'ai l'impression qu'il peut me servir pour ce que je veux faire:
J'ai une fonction qui ping une adresse ip et qui doit me renvoyer une valeur correspondante à une couleur (red ou green) en fonction de la réponse du ping

def execute(option,numero):
			
	result = subprocess.call(['ping', option, '192.168.1.{}'.format(str(numero))])
	if not result:
		print("Address OK")
		couleur1='green'
	else:
		print("Address KO")
		couleur1='red'
OS = sys.platform

option = '-c 1' if OS != 'win32' else ''

execute(option,1)

ça marche mais j'aimerais maintenant que la variable se nommeen fonction de l'argument 'numero' du genre:

couleur+str(numero) = 'green'

Je n'arrive pas à comprendre ton exemple, mais j'ai l'impression qu'il doit le permettre... smile

Merci

#9 Re : -1 »  [RÉSOLU] python: fonction avec argument » Le 16/02/2015, à 14:52

totola
Réponses : 10

Bon, de la même façon qu'avant, j'ai une liste avec les couleur = ['red','red,'red,...]

puis

def execute(option,numero):
...
	if not result:
		...
		couleur[numero]='green'
	else:
...
		couleur[numero]='red'
...

Et voilà... Youpi smile

#10 Re : -1 »  (+ ou - Résolu) arrêter un seul processus vlc en ligne de commande » Le 29/01/2015, à 20:07

totola
Réponses : 13
genma a écrit :
#lancer VLC et récupérer le pid dans une variable
monPID = $(vlc & PID=$!)
# Afficher le PID (valeur dans la variable)
echo $monPID

J'ai dit résolu un peu vite peut-être... En suivant les instructions ci-dessus la variable monPID ne contient rien du tout... hmm

#11 Re : -1 »  (+ ou - Résolu) arrêter un seul processus vlc en ligne de commande » Le 30/01/2015, à 19:03

totola
Réponses : 13

Merci, en fait le problème venait d'autre part: j'utilise ma commande dans un programme python avec le module fabric (pour utiliser ssh) et la commande run()... Et c'est pas si simple comme le dit la doc elle-même:

http://www.fabfile.org/faq.html#why-can … abric-hang

Ce qui est bizarre et si quelqu'un peut m'expliquer, c'est que la commande:

run('cvlc & PID=$!')
ou

run('cvlc & PID=$! &')

ne marchent pas... cvlc ne se lance même pas

en revanche:

run('cvlc & PID=$! | while (true) do sleep 100;done')

ou n'importe quel processus ou boucle infinie, et là tout fonctionne bien, cvlc se lance, je peux le tuer avec le PID... Bizarre... :s

#12 -1 »  [Résolu]Condition "si un processus est démarré..." » Le 30/01/2015, à 09:01

totola
Réponses : 2

Bonjour, je cherche à réaliser une action en fonction de si un processus est lancé

ps -C "avconv"
  PID TTY          TIME CMD
 3880 pts/5    00:00:00 avconv

si "avconv est bien présent dans le retour ci-dessus"
     faire: "action 1"
sinon "action 2"

Bon, la condition if -else, je devrais trouver, mais comment faire pour trouver si avconv est bien lancé?
Merci

#13 Re : -1 »  [Résolu]Condition "si un processus est démarré..." » Le 30/01/2015, à 10:24

totola
Réponses : 2

Ah ouais... aussi simple... hmm
Le pire c'est que ça marche! J'aurais pu trouver tout seul..
Désolé, je suis un vrai boulet :s

Merci serged! smile

#14 Re : -1 »  [Résolu]Tkinter programmation parallèle avec threading » Le 25/01/2015, à 21:25

totola
Réponses : 8

Ok, j'avais vu cette page mais pas bien tout compris... Et puis je n'étais pas sûr que ça corresponde à mon problème. Mais si tu le dis, je vais me plonger sérieusement là-dedans et essayer de l'adapter chez moi. Je reviens dès que j'ai des soucis (dans pas très longtemps normalement) big_smile
Merci

#15 Re : -1 »  [Résolu]Tkinter programmation parallèle avec threading » Le 25/01/2015, à 21:44

totola
Réponses : 8

J'ai l'impression que c'est ça:

1. Create a Queue object in the main thread

2. Create a new thread with access to that queue

3. Check periodically the queue in the main thread

Mais il me manque cruellement un exemple simple pour comprendre... hmm

#16 Re : -1 »  [Résolu]Tkinter programmation parallèle avec threading » Le 25/01/2015, à 21:51

totola
Réponses : 8

Ok je suis grillé.. Je reviens après avoir travaillé sérieusement mon sujet... tongue

La flemme, la fatigue, le mal à la tête...  et toussa...
Une bonne aspirine et je m'y remet! smile
@+

#17 Re : -1 »  [Résolu]Tkinter programmation parallèle avec threading » Le 25/01/2015, à 22:58

totola
Réponses : 8

J'ai trouvé ça qui m'a l'air étrangement simple mais semble marcher dans mon cas... ??

def handle_click():
        def callback():
            # Mon code ici ...
            # .....
        t = threading.Thread(target=callback)
        t.start()

#18 Re : -1 »  [Résolu]Tkinter programmation parallèle avec threading » Le 25/01/2015, à 23:09

totola
Réponses : 8

Ok  wink
Merci
Je passe en résolu et je vais me coucher encore moins bête... Bonne nuit smile

#19 Re : -1 »  [Résolu]Tkinter canvas créer puis effacer une ligne » Le 25/01/2015, à 19:43

totola
Réponses : 12

Ah oui... c'est parfaitement clair... :s
Bon j'essaierai de m'en souvenir si ça pose problème pour la suite... smile
Pour les indentations, c'est juste une erreur de copier-coller je pense... Je corrige sur le post.

Sinon, autre chose, pas une petite idée concernant les threads?? Je galère trop là... :s

http://forum.ubuntu-fr.org/viewtopic.php?id=1770441

#20 Re : -1 »  [Résolu]Tkinter canvas créer puis effacer une ligne » Le 25/01/2015, à 19:54

totola
Réponses : 12

Ah ok, je vais regarder ça! ça paraît plus logique en effet. Merci!

#21 Re : -1 »  [Résolu]Tkinter canvas créer puis effacer une ligne » Le 25/01/2015, à 19:58

totola
Réponses : 12
tiramiseb a écrit :

Par ailleurs, pourquoi créer une méthode "initialize" alors que tu utilises déjà le "__init__" tout à fait standard ?

Ben parce que pour l'instant je copie-colle des trucs sans tout comprendre... :s
Mais grâce aux gentils forumeurs qui prennent de leur temps pour m'expliquer je progresse petit à petit wink
Merci beaucoup!

#22 Re : -1 »  [Résolu]Tkinter canvas créer puis effacer une ligne » Le 25/01/2015, à 20:38

totola
Réponses : 12

Bon j'ai déjà remplacé toutes mes variables globales (j'en avais un paquet...) par des self.var dans toutes mes fonctions.
ça marche... Merci!

#23 Re : -1 »  [Résolu]Tkinter canvas créer puis effacer une ligne » Le 25/01/2015, à 21:08

totola
Réponses : 12

Oui, j'ai également viré ça sans soucis:

self.initialize()
	def initialize(self):

Merci, je commence à y voir plus clair.

#24 Re : -1 »  [Résolu]Tkinter canvas créer puis effacer une ligne » Le 25/01/2015, à 21:11

totola
Réponses : 12

Et sinon, pour mes histoires de threads? Pas de pistes?
J'ai cru voir que ce n'était pas simple avec Tkinter... Est-ce qu'il vaudrait mieux que je recode le tout avec pyGTK ou wxpython?? Il y a l'air d'y avoir plus d'exemples et de docs...