Coucou Abdel,
Très très intéressant !
Mais alors vraiment intéressant !
Je l'intègre à mon code dès que j'ai une seconde, et reviendrai vers toi.
Je suis d'ailleurs sur le point d'implémenter également l'exécution d'un
fichier par l'un des python choisi.
Et parmi les pythons pris en compte, le premier d'entre eux doit être celui
embarqué avec le 6pad++.
A plus !
Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
www.visuweb.net
----- Original Message -----
From: "_Abdel_" <[email protected]>
To: <[email protected]>
Sent: Wednesday, February 10, 2016 11:48 AM
Subject: [progliste] Re: Extension forPython : bugs et améliorations
Salut Yannick,
Début de citation
Mais petit bémol à cette fonctionnalité, à cause du fait qu'il ne peut y
avoir que des fonctions figées à l'attribut action des menus, je suis
obligé de créer à l'avance un nombre déterminé de fonctions qui
exécuteront le choix fait sur les menus suivant leur position.
Plus concrètement, je suis obligé de faire à l'avance des fonctions comme
suit:
def choosePythonVersion1():
def choosePythonVersion2():
def choosePythonVersion3():
def choosePythonVersion4():
def choosePythonVersionX():
Fin de citation
Ah tu crois?
Eh bien j'ai une très bonne nouvelle à t'annoncer.
Sache qu'avec Python, tu peux ne créer qu'une seule fonction callback pour
tous tes sous-menus, quel que soit leur nombre.
Si tu veux, je te fournis plus bas un petit exemple, où l'on crée
plusieurs sous-menus dynamiquement grâce à une boucle et où l'on interagit
avec chacun d'entre eux, avec une seule et unique fonction callback.
Concrètement, ce sera beaucoup plus simple pour toi lol !
Je serai intéressé que l'on intègre cette fonctionnalités d'exécution de
script Python dans la nouvelle version du forPython si tu veux.
Pour l'étude des décorateurs, je t'invite à lire le super tuto du site
OpenClassrooms, ex site du zero, ou celui de Sam & Max:
Tuto d'OpenClassrooms :
https://openclassrooms.com/courses/apprenez-a-programmer-en-python/les-decorateurs
Tuto de Sam & Max, en 2 parties :
http://sametmax.com/comprendre-les-decorateurs-python-pas-a-pas-partie-1/
http://sametmax.com/comprendre-les-decorateur-python-pas-a-pas-partie-2/
Je t'invite aussi à regarder le travail de notre ami Cyrille, qui pourrait
être source d'inspiration...
Voici donc mon exemple de création d'un seul callback pour plusieurs
sous-menus créés dynamiquement grâce à une boucle :
Début du code
# Création de la fonction make_f en tant que décorateur, ce sera notre
seul et unique callback.
def make_f(i):
# Création de la fonction f, à l'intérieur de la fonction make_f.
def f():
# On récupère le nom du sous-menu sur lequel on vient de valider
myMenuName = "menu%d" % i
sp.window.alert(myMenuName, "Nom du menu")
# On décoche tous les sous-menus sauf le sous-menu en cours
for x in range(myMenu.length):
if not myMenu[x].name == myMenuName:
myMenu[x].checked = False
else:
myMenu[x].checked = True
# On retourne la fonction f.
return f
# Création du menu comme sous menu du menu outils
toolsMenu = sp.window.menus.tools
myMenu = toolsMenu.add(label = "M&on menu", submenu = True)
# Création de la boucle permettant de créer les sous-menu dynamiquement
for i in range(1, 6):
# on affecte f à l'action du callback
f =make_f(i)
myMenu.add(label = "menu &%d" % i, index = -1, action=f, name="menu%d"
% i)
Fin du code
Bien amicalement,
Abdel.
----- Original Message -----
From: "Yannick Youalé" <[email protected]>
To: <[email protected]>
Sent: Monday, February 08, 2016 9:26 AM
Subject: [progliste] Re: Extension forPython : bugs et améliorations
Salut Abdel,
Début de citation
Autrement, je suis en train d'étudier comment intégrer la possibilité
d'exécuter un script Python.
Fin de citation
Dans cette optique, j'ai travaillé sur une fonctionnalité de listage des
différentes versions de python installées sur l'ordinateur courant.
Elles sont énumérées comme sous-menus à un menu intitulé "Versions de
python". dans le menu outil.
La version choisie par défaut est cochée, et ce choix est sauvegardé dans
le fichier de configuration.
Dans le code, on peut retrouver la version de python sélectionnée par la
variable globale curPythonPath qui renvoit le chemin vers le dossier du
python choisi.
Et dans tous les cas, l'exécutable du python choisi est:
curPythonPath+\\python.exe
Mais petit bémol à cette fonctionnalité, à cause du fait qu'il ne peut y
avoir que des fonctions figées à l'attribut action des menus, je suis
obligé de créer à l'avance un nombre déterminé de fonctions qui
exécuteront le choix fait sur les menus suivant leur position.
Plus concrètement, je suis obligé de faire à l'avance des fonctions comme
suit:
def choosePythonVersion1():
def choosePythonVersion2():
def choosePythonVersion3():
def choosePythonVersion4():
def choosePythonVersionX():
Ce qui n'est pas très commode vous le remarquerez.
Cela m'a obligé à limiter le nombre de versions du python à prendre en
compte à 5 pour le moment.
Certes, je pourrais plutôt employer une liste de choix pour choisir la
version du python, mais ça semble tellement moins naturel que les menus
qui peuvent être cochés ou décochés...
Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
www.visuweb.net
----- Original Message -----
From: "_Abdel_" <[email protected]>
To: <[email protected]>
Sent: Monday, February 08, 2016 8:23 AM
Subject: [progliste] Re: Extension forPython : bugs et améliorations
Resalut les scripteurs !
Voici une dernière mouture du module forPython, qui tient compte du
niveau
d'indentation, lors de l'utilisation de la touche backSpace lorsqu'on
est en
début de ligne.
Pour les mises à jour de l'extension, la priorité sera bien sûr ce que
vous
souhaiteriez améliorer ou corriger.
Autrement, je suis en train d'étudier comment intégrer la possibilité
d'exécuter un script Python.
J'explore également les nouveautés de la version alpha pour intégrer le
plan
du module en cours d'implémentation ou d'exploration sous la forme d'une
treeView.
Toute aide ou suggestion sera la bienvenue les amis.
Bien amicalement,
Abdel.
----- Original Message -----
From: "_Abdel_" <[email protected]>
To: <[email protected]>
Sent: Sunday, February 07, 2016 11:56 PM
Subject: [progliste] Re: Extension forPython : bugs et améliorations
Merci Quentin,
En fait, pour ma part, c'est toujours dans un dossier "plugins" que
j'inserts mes extensions pour 6pad++.
Mais Yannick nous a dit dans l'un de ses précédents posts, que parfois,
il
avait tendance à les introduire dans d'autres répertoires.
Qu'à cela ne tienne, le problème est désormais bel et bien résolu.
Sans plus tarder les amis, je vous communique la nouvelle mouture de
l'extension forPython.
Elle comporte les améliorations suivantes :
1. Désormais, vous disposez d'un nouveau mode de lecture des entêtes de
lignes, il s'agit de la lecture des indentations, ainsi que la lecture
des
numéros de lignes et des indentations.
2. Le menu Outils est bien ciblé pour l'ajout du sous-menu forPython,
comme
nous l'avait demandé Cyrille.
3. Désormais, dans la liste des fonctions dont on va souhaiter modifier
les
raccourcis-clavier, la liste recueille désormais les noms de chaque
item
en
français, en allant les rechercher dans les labels des menus
correspondant,
comme nous l'a demandé Cyrille.
4. La fonction getCurScriptFolderPath a bien été corrigée et devrait
fonctionner quel que soit le contexte du répertoire où figurera
l'extension
forPython.
Modalité d'installation :
Étant-donné que notre ami Yannick nous a gratifié d'un nouveau fichier
"statements.txt" pour l'insertion des directives d'encodage,
l'extension
forPython dispose désormais de 2 fichiers et ils ont été insérés dans
un
répertoire "forPython".
C'est 2 fichiers sont le fichier "__init__.py" et le fameux fichier
"statements.txt" de Yannick.
Pour l'installation, la ligne a insérer dans le fichier de
configuration
"6pad++.ini" devra être la suivante :
extension=plugins/forPython/__init__.py
Testez-la et faites nous part de vos remarques et suggestions...
Bien amicalement,
Abdel.
----- Original Message -----
From: "QuentinC" <[email protected]>
To: <[email protected]>
Sent: Sunday, February 07, 2016 10:16 PM
Subject: [progliste] Re: Extension forPython : bugs e t am
éliorations
> Celui-ci pouvant être "plugins", "lib", "extension" ou autre,
> Yannick
avait créé un algorithme qui, en utilisant des conditions, teste
lequel
est utilisé.
C'est censé toujours être plugins pour les plugins python de 6pad++.
Progliste :
Pour se désinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pièces jointe sont activés leur taille est
limité
à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
privé,
je vous répondrez en privé.
Progliste :
Pour se désinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pièces jointe sont activés leur taille est
limité à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé,
je vous répondrez en privé.
Progliste :
Pour se désinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pièces jointe sont activés leur taille est limité
à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé,
je vous répondrez en privé.
Progliste :
Pour se désinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je
vous répondrez en privé.