begin process at 2012 05 24 00:39:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > GUI POUR LIGNE DE COMMANDE

GUI POUR LIGNE DE COMMANDE


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :gui, commande, console Niveau :Débutant Date de création :19/10/2004 Vu :4 960

Auteur : Croqmort

Ecrire un message privé
Site perso
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

j'ai fait ce code pour imiter la meniere de faire de wm. l'utilisation des %a dans les menu est surpuissant.

Source

  • #!/usr/bin/env python
  • #Author : croqmort@ifrance.com
  • #licence : standard GNU
  • #if you add some features, please send me that ;)
  • from Tkinter import *
  • from sys import stdout, argv, exit
  • from os import system
  • class Dialog(Frame):
  • def enter(self, event, widget):
  • widget["bg"] = "#DDF"
  • def leave(self, event, widget):
  • widget["bg"] = "#FFF"
  • def ok_event(self, event=None):
  • self.how = 1
  • self.quit()
  • def cancel_event(self, event=None):
  • self.quit()
  • def go(self):
  • self.mainloop()
  • if self.how == 1:
  • l = []
  • for i in self.entry_list:
  • l.append(i.get())
  • return l
  • else: return []
  • def addEntry(self, msg, default):
  • frame = Frame(self.entryFrame)
  • Label(frame, text=msg).pack(side=LEFT)
  • entry = Entry(frame)
  • def tmp_enter(event=None):
  • self.enter(event, entry)
  • def tmp_leave(event=None):
  • self.leave(event, entry)
  • entry.bind('<Enter>', tmp_enter)
  • entry.bind('<Leave>', tmp_leave)
  • entry["bg"] = "#FFF"
  • entry["fg"] = "#000"
  • entry.insert(END,default)
  • entry.pack(side=RIGHT, fill=X, expand=1)
  • self.entry_list.append(entry)
  • frame.pack(side=BOTTOM,fill=X)
  • def colorButton(self, widget):
  • widget["background"] = "#DDF"
  • widget["foreground"] = "black"
  • widget["activebackground"] = "#AAF"
  • widget["activeforeground"] = "black"
  • def __init__(self, title="Entry Dialog"):
  • Frame.__init__(self)
  • self.how = 0
  • self.pack(fill=BOTH, expand=1)
  • self.master.title(title)
  • self.master.iconname(title)
  • self.entry_list = []
  • self.entryFrame = Frame(self)
  • self.entryFrame.pack(side=TOP, fill=X)
  • self.buttonFrame = Frame(self)
  • self.buttonFrame.pack(side=BOTTOM)
  • self.buttonOk = Button(self.buttonFrame)
  • self.buttonOk["text"] = "Ok"
  • self.buttonOk["command"] = self.ok_event
  • self.buttonOk.pack(side=RIGHT)
  • self.colorButton(self.buttonOk)
  • self.buttonCancel = Button(self.buttonFrame)
  • self.buttonCancel["text"] = "Cancel"
  • self.buttonCancel["command"] = self.cancel_event
  • self.buttonCancel.pack(side=LEFT)
  • self.colorButton(self.buttonCancel)
  • self.master.protocol('WM_DELETE_WINDOW', self.quit)
  • def get_pct_a(s):
  • l = []
  • i = s.find("%a")
  • while i != -1:
  • n = 0
  • while (i-n)!=0 and s[i-(n+1)]=='\\':
  • n = n + 1
  • if n%2 == 1:
  • i = s.find("%a",i+2)
  • continue
  • ibs = s.find("(",i+2)
  • ibe = s.find(")",ibs)
  • if ibs == -1 or ibe == -1 or ibs!=i+2:
  • i = s.find("%a",i+2)
  • continue
  • ic = s.find(",",ibs,ibe)
  • if ic == -1: l.append((s[ibs+1:ibe].strip(),""))
  • else: l.append((s[ibs+1:ic].strip(),s[ic+1:ibe].strip()))
  • i = s.find("%a",i+2)
  • return l
  • def replace_pct_a(s, l):
  • w = i = s.find("%a")
  • j = 0
  • while i != -1:
  • n = 0
  • while (i-n) != 0 and s[i-(n+1)] == '\\':
  • n = n + 1
  • if n%2 == 1:
  • w = i + 2
  • i = s.find("%a", w)
  • continue
  • ibs = s.find("(", i + 2)
  • ibe = s.find(")", ibs)
  • if ibs == -1 or ibe == -1 or ibs != i+2:
  • w = i + 2
  • i = s.find("%a", w)
  • continue
  • s = s[:i] + l[j] + s[ibe+1:]
  • w = i + len(l[j])
  • j = j + 1
  • i = s.find("%a",w)
  • return s
  • usage = """
  • menu_wm_a.py command title
  • command can contain some "%a(text,default)"
  • a dialog box with all this entry appeared and all occurence of %a is replaced by your reply
  • command is launch
  • """
  • usage_fr = """
  • menu_wm_a.py commande titre
  • commande peut contenir plusieurs "%a(texte, defaut)"
  • une boite de dialogue est cree contenant une entree pour chaque %a
  • toute les occurences de %a sont remplace par votre reponse puis commande est executee
  • """
  • if len(argv) < 2:
  • print usage_fr
  • exit(0)
  • l = get_pct_a(argv[1])
  • if len(l) != 0:
  • d = Dialog(argv[2])
  • for (text, default) in l:
  • d.addEntry(text, default)
  • r = d.go()
  • if len(r) != len(l): exit(0)
  • str = replace_pct_a(argv[1],r)
  • else:
  • str = argv[1]
  • system(str)
#!/usr/bin/env python
#Author : croqmort@ifrance.com
#licence : standard GNU
#if you add some features, please send me that ;)

from Tkinter import *
from sys import stdout, argv, exit
from os import system

class Dialog(Frame):
    def enter(self, event, widget):
        widget["bg"] = "#DDF"
    def leave(self, event, widget):
        widget["bg"] = "#FFF"
    def ok_event(self, event=None):
        self.how = 1
        self.quit()
    def cancel_event(self, event=None):
        self.quit()
    def go(self):
        self.mainloop()
        if self.how == 1:
            l = []
            for i in self.entry_list:
                l.append(i.get())
            return l
        else: return []
    def addEntry(self, msg, default):
        frame = Frame(self.entryFrame)
        Label(frame, text=msg).pack(side=LEFT)
        entry = Entry(frame)
        def tmp_enter(event=None):
            self.enter(event, entry)
        def tmp_leave(event=None):
            self.leave(event, entry)
        entry.bind('<Enter>', tmp_enter)
        entry.bind('<Leave>', tmp_leave)
        entry["bg"] = "#FFF"
        entry["fg"] = "#000"
        entry.insert(END,default)
        entry.pack(side=RIGHT, fill=X, expand=1)
        self.entry_list.append(entry)
        frame.pack(side=BOTTOM,fill=X)
    def colorButton(self, widget):
        widget["background"] = "#DDF"
        widget["foreground"] = "black"
        widget["activebackground"] = "#AAF"
        widget["activeforeground"] = "black"
    def __init__(self, title="Entry Dialog"):
        Frame.__init__(self)
        self.how = 0
        self.pack(fill=BOTH, expand=1)
        self.master.title(title)
        self.master.iconname(title)
        self.entry_list = []
        self.entryFrame = Frame(self)
        self.entryFrame.pack(side=TOP, fill=X)
        self.buttonFrame = Frame(self)
        self.buttonFrame.pack(side=BOTTOM)
        self.buttonOk = Button(self.buttonFrame)
        self.buttonOk["text"] = "Ok"
        self.buttonOk["command"] = self.ok_event
        self.buttonOk.pack(side=RIGHT)
        self.colorButton(self.buttonOk)
        self.buttonCancel = Button(self.buttonFrame)
        self.buttonCancel["text"] = "Cancel"
        self.buttonCancel["command"] = self.cancel_event
        self.buttonCancel.pack(side=LEFT)
        self.colorButton(self.buttonCancel)
        self.master.protocol('WM_DELETE_WINDOW', self.quit)

def get_pct_a(s):
    l = []
    i = s.find("%a")
    while i != -1:
        n = 0
        while (i-n)!=0 and s[i-(n+1)]=='\\':
            n = n + 1
        if n%2 == 1:
            i = s.find("%a",i+2)
            continue
        ibs = s.find("(",i+2)
        ibe = s.find(")",ibs)
        if ibs == -1 or ibe == -1 or ibs!=i+2:
            i = s.find("%a",i+2)
            continue
        ic = s.find(",",ibs,ibe)
        if ic == -1: l.append((s[ibs+1:ibe].strip(),""))
        else: l.append((s[ibs+1:ic].strip(),s[ic+1:ibe].strip()))
        i = s.find("%a",i+2)
    return l

def replace_pct_a(s, l):
    w = i = s.find("%a")
    j = 0
    while i != -1:
        n = 0
        while (i-n) != 0 and s[i-(n+1)] == '\\':
            n = n + 1
        if n%2 == 1:
            w = i + 2
            i = s.find("%a", w)
            continue
        ibs = s.find("(", i + 2)
        ibe = s.find(")", ibs)
        if ibs == -1 or ibe == -1 or ibs != i+2:
            w = i + 2
            i = s.find("%a", w)
            continue
        s = s[:i] + l[j] + s[ibe+1:]
        w = i + len(l[j])
        j = j + 1
        i = s.find("%a",w)
    return s


usage = """
menu_wm_a.py command title
command can contain some "%a(text,default)"
a dialog box with all this entry appeared and all occurence of %a is replaced by your reply
command is launch
"""

usage_fr = """
menu_wm_a.py commande titre
commande peut contenir plusieurs "%a(texte, defaut)"
une boite de dialogue est cree contenant une entree pour chaque %a
toute les occurences de %a sont remplace par votre reponse puis commande est executee
"""

if len(argv) < 2:
    print usage_fr
    exit(0)
l = get_pct_a(argv[1])
if len(l) != 0:
    d = Dialog(argv[2])
    for (text, default) in l:
        d.addEntry(text, default)
    r = d.go()
    if len(r) != len(l): exit(0)
    str = replace_pct_a(argv[1],r)
else:
    str = argv[1]
system(str)

 Conclusion

voila, ça peut toujours servir


 Sources du même auteur

RECHERCHE DE CHEMIN OPTIMUM
REVERSI ( OTHELLO )

 Sources de la même categorie

CALCULE LA FRÉQUENCE DU CPU par Guillamue06
Source avec Zip Source avec une capture NOTEPAD POUR PYTHON par grephit
EXTRAIRE LE CONTENU D'UNE ARCHIVE .TAR OU .RAR par brennal
Source avec Zip SCRIPT PERMETTANT DE DÉCODER LA STRUCTURE SECONDAIRE D'UNE P... par Basilio
SUPPRESSION par Rano Its

 Sources en rapport avec celle ci

Source avec Zip JEU DU NOMBRE MYSTERE EN PYTHON par messorama
Source avec Zip Source avec une capture ILLUSTRATION DE SINUS ET DE COSINUS par calogerogigante
CHANGEMENT DE CASSE par linkid
MA PREMIERE CALCULATRICE EN PYTHON!! par djisse95
Source avec Zip QUIZZ DES CAPITALES SUR BASE DE DONNÉE par aowhelios

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Recuperation d'argument (ligne de commande) [ par Bl0tCh ] Bonjour, J'aimerais savoir comment récupérer les arguments que l'on passe ds la ligne de commande. Exemple :prog.exe -a 18 -s mComment récuperer le 18 appel de methode entre 2 fichiers [ par areuh ] Bonsoir,Voilà, j'ai 2 fichiers .py représentant chacun une classe- le 1° est la gui (interface graphique avec Frame, Button, etc)- le 2° est un objet GUI [ par rambc ] Je me lance dans Python et je voulais savoir quelle librairie il faut choisir pour les Graphical Users Interface. wxPython est-elle compatible avec le Créer une commande linux en python [ par skylin3 ] Bonjour,J'aimerai savoir si c'est possible et comment faire pour créer une commande que je peux utilisé dans ma console linux (Debian 4.0) créer en py Comment creer une GUI en pure python ??? [ par pythux ] Bonjour a tous !!!Apres de nombreuse recherche infructueuses sur le net, je me tourne vers vous pour essayez de me donner quelque ellements de reponse [python] probleme execution commande avec os.popen [ par lpi_info ] salut à tous,j'essaie de lancer une commande dans un script python que je veux exécuter par la suite dans une page web, pour cela j'ai utilisée le spa Envoie de parametres vers la console [ par 8sango8 ] Bonjours,voila je suis un novice en Python . Mon problème est le suivant, je dois envoyer un certain nombre de paramètre vers la console (cmd windows) Commande print [ par Boy63 ] Bonjour a tous,J'ai une petite question d'ordre esthétique. Avec la commande print peut on choisir la taille des caractères, les mettre en gras, les s Aide pour acquisition d'une pression [ par sebfluo ] Bonjour a tous.Je suis entrain de réaliser un petit programme avec une interface graphique(réalisée avec QT designer et PyQT) permettant d'acquérir un Compression d'images en lignes de commande - Python [ par Elninor ] Bonsoir, j'ai cherché sur tous les sites possibles (francophone et anglophone) mais je n'ai rien trouvé. Je recherche quelques lignes de commande perm


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,716 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales