Interface graphique pour en creer d'autre....

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 393 fois - Téléchargée 25 fois

Contenu du snippet

Essenciel :

je vous explique les utilitaires (même si il n'y en pas besoin...) :

Onglet apparence :

couleur relief :
1 couleur de la page (...)
2 relief (si vous mettez rien alors "Pas de relief" se mettera)
3 taille des relief (...)

titre :
1 titre (titre sur la barre de tache; ne pas utiliser avec la fonction ci dessous)

barre de tache (supprimer la barre de tache)

onglet objet :
Fenetre pour dessiner (...)
taille (...)

Label 1-3
texte sur le label (...)
couleur de fond + texte (...)
relief (si vous mettez rien alors "Pas de relief" se mettera)

Bouton quitter (...)
texte sur le bouton (...)
couleur de fond + texte (...)
relief (si vous mettez rien alors "Pas de relief" se mettera)
Disble (pour desactiver le bouton)

les +
c'est simple

creer
1 entrer le nom du fichier affin de le creer
2 ...

Source / Exemple :


# -*- coding: cp1252 -*-
import Tkinter
import Pmw
from tkMessageBox import *
colours = ('Relief sortant', 'Relief rentrant', 'Pas de relief', 'Crête','Sillon', 'Bordure')
flag=[0,0,0,0,0,[Tkinter.RAISED,Tkinter.FLAT,Tkinter.FLAT,Tkinter.FLAT,Tkinter.FLAT],0,0,0,0]
class Demo:
    def __init__(self, parent):
        parent.bind('<Control-s>',self.cf)
        self.parent=parent
	# Create and pack the NoteBook.
        self.notebook = Pmw.NoteBook(parent)
        self.notebook.pack( expand = 1, padx = 10, pady = 10)

        # Add the "Appearance" page to the notebook.
        self.page4 = self.notebook.add(' Apparence ')
        self.notebook.tab(' Apparence ').focus_set()
        self.page = self.notebook.add(' Objet ')
        self.notebook.tab(' Objet ').focus_set()
        self.page2 = self.notebook.add(' les + ')
        self.notebook.tab(' les + ').focus_set()
        self.page3 = self.notebook.add(' creer ')
        self.notebook.tab(' creer ').focus_set()

        # Create the "Toolbar" contents of the page.
        self.group4 = Pmw.Group(self.page4, tag_text = 'Couleur')
        self.group4.pack(fill = 'both', expand = 1, padx = 20, pady = 20)
        self.group5 = Pmw.Group(self.page, tag_text = 'Canvas')
        self.group5.pack(fill = 'both', expand = 1, padx = 20, pady = 20)
        self.group2 = Pmw.Group(self.page, tag_text = 'Label')
        self.group2.pack(fill = 'both', expand = 1, padx = 20, pady = 20)
        self.group6 = Pmw.Group(self.page4, tag_text = 'Titre')
        self.group6.pack(fill = 'both', expand = 1, padx = 20, pady = 20)
        self.group65 = Pmw.Group(self.page4, tag_text = 'Bare de tache')
        self.group65.pack(fill = 'both', expand = 1, padx = 20, pady = 20)
        self.group2_1 = Pmw.Group(self.group2.interior(), tag_text = 'Label-1')
        self.group2_1.grid( row = 0, column = 0,padx = 10, pady =10)
        self.group2_2 = Pmw.Group(self.group2.interior(), tag_text = 'Label-2')
        self.group2_2.grid( row = 0, column = 1,padx = 10, pady =10)
        self.group2_3 = Pmw.Group(self.group2.interior(), tag_text = 'Label-3')
        self.group2_3.grid( row = 1, column = 0,padx = 10, pady =10)
        self.b5=Tkinter.Button(self.page3,text='Creer le fichier',command=self.cf)
        self.b5.grid(row = 1, column = 0,columnspan=2 ,padx = 50, pady = 40)
        self.group3 = Pmw.Group(self.page, tag_text = 'Bouton')
        self.group3.pack(fill = 'both', expand = 1, padx = 20, pady = 20)
        self.group = Pmw.Group(self.group3.interior(), tag_text = 'Bouton quiter')
        self.group.grid(row = 0, column = 0, padx = 10, pady = 10)
        self.group0 = Pmw.Group(self.page2, tag_text = 'Importation en +')
        self.group0.pack(padx = 10, pady = 10)
        self.group01 = Pmw.Group(self.page2, tag_text = 'definition en +')
        self.group01.pack(padx = 10, pady = 10)
        self.group02 = Pmw.Group(self.page2, tag_text = 'widjet en +')
        self.group02.pack(padx = 10, pady = 10)
        self.b1 = Tkinter.Checkbutton(self.group.interior(), text = 'Bouton quiter',command=self.but)
        self.b1.grid(row = 0, column = 0)
        self.b6 = Tkinter.Checkbutton(self.group4.interior(), text = 'couleur/relief',command=self.but6)
        self.b6.grid(row = 0, column = 0)
        self.b7 = Tkinter.Checkbutton(self.group6.interior(), text = 'Titre',command=self.but7)
        self.b7.grid(row = 1, column = 0)
        self.Ent = Tkinter.Entry(self.page3)
        self.Ent.grid(row = 0, column = 1)
        self.Ent.insert('0','1.py')
        self.Lab = Tkinter.Label(self.page3,text='Localisation :')
        self.Lab.grid(row = 0, column = 0)
        self.b2 = Tkinter.Checkbutton(self.group2_1.interior(), text = 'Label-1',command=self.lab1)
        self.b2.grid(row = 0, column = 0)
        self.b3 = Tkinter.Checkbutton(self.group2_2.interior(), text = 'Label-2',command=self.lab2)
        self.b3.grid(row = 0, column = 0)
        self.bb = Tkinter.Checkbutton(self.group5.interior(), text = 'Fenetre pour dessiner',command=self.labb)
        self.bb.grid(row = 0, column = 0)
        self.b4 = Tkinter.Checkbutton(self.group2_3.interior(), text = 'Label-3',command=self.lab3)
        self.b4.grid(row = 0, column = 0)
        self.b45 = Tkinter.Checkbutton(self.group65.interior(), text = 'Barre de tache',command=self.aegis2)
        self.b45.grid(row = 0, column = 0)
        self.txt=Pmw.ScrolledText(self.group0.interior(),borderframe = 1,
		usehullsize = 1,
		hull_width =200,hull_height =100,
		text_padx = 10,text_pady = 10)
        self.txt.pack()
        self.txt1=Pmw.ScrolledText(self.group01.interior(),borderframe = 1,
		usehullsize = 1,
		hull_width =200,hull_height =100,
		text_padx = 10,text_pady = 10)
        self.txt1.pack()
        self.txt2=Pmw.ScrolledText(self.group02.interior(),borderframe = 1,
		usehullsize = 1,
		hull_width =200,hull_height =100,
		text_padx = 10,text_pady = 10)
        self.txt2.pack()
        self.notebook.setnaturalsize()

    def cf(self,event=None) :
        if flag[1] :
            a1 = '\nLabel(text="%s",bg="%s",fg="%s",relief="%s").pack()'%(self.ent1.get(),self.ent1_.get(),self.ent1__.get(),flag[5][1])
        else :
            a1=''
        if flag[2] :
            a2 = '\nLabel(text="%s",bg="%s",fg="%s",relief="%s").pack()'%(self.ent2.get(),self.ent2_.get(),self.ent2__.get(),flag[5][2])
        else :
            a2=''
        if flag[3] :
            a3 = '\nLabel(text="%s",bg="%s",fg="%s",relief="%s").pack()'%(self.ent3.get(),self.ent3_.get(),self.ent3__.get(),flag[5][3])
        else :
            a3=''
        if flag[4]:
            a35='disable'
        else :
            a35='normal'
        if flag[0] :
            a4 = '\nButton(text="%s",bg="%s",fg="%s",command=exit,stat="%s",relief="%s").pack()'%(self.ent.get(),self.ent_.get(),self.ent__.get(),a35,flag[5][0])
        else :
            a4=''
        if flag[6] :
            a5 = '\nroot.configure(bg="%s",relief="%s",bd=%s)'%(self._ent.get(),flag[5][4],self._ent_.get())
        else :
            a5=''
        if flag[7] :
            a6 = '\nroot.title("%s")'%(self.__ent.get())
        else :
            a6='\nroot.title("Tk")'
        if flag[8] :
            a7 ="""
def bit (event) :
    can.create_line(event.x,event.y,event.x+1,event.y+1,fill='grey100')"""
            a8= """can = Canvas(bg='grey0',height=%s,width=%s)
can.pack()
can.bind('<Motion>',bit)"""%(self.ae.get(),self.ae.get())
        else :
            a8=a7=''
        if flag[9] :
            a9='\nroot.overrideredirect(TRUE)'
        else :
            a9=''
        self.main="""####Importation####
from Tkinter import *
%s
from sys import exit
####/Importation####
####Fonctions####
%s
%s
####/Fonctions####
####Widjet####
root=Tk()%s%s%s%s%s%s%s
%s
%s
root.mainloop()
####/Widjet####"""%(self.txt.get(),a7,self.txt1.get(),a1,a2,a9,a3,a4,a5,a6,a8,self.txt2.get())
        open(self.Ent.get(),'w+').write(self.main)
        self.parent.bell()
    def but (self):
        global flag
        if flag[0]:
            flag[0]=0
            self.lab.destroy()
            self.ent.destroy()
            self.lab_.destroy()
            self.ent_.destroy()
            self.lab__.destroy()
            self.ent__.destroy()
            self.b5.destroy()
            self.dropdown.destroy()
            flag[5][0]=Tkinter.RAISED
            self.notebook.setnaturalsize()
        else :
            flag[0]=1
            self.ent=Tkinter.Entry(self.group.interior())
            self.ent.grid(row = 1, column = 1)
            self.lab=Tkinter.Label(self.group.interior(),text='Texte sur le bouton :')
            self.lab.grid(row = 1, column = 0)
            self.ent_=Tkinter.Entry(self.group.interior())
            self.ent_.grid(row = 2, column = 1)
            self.lab_=Tkinter.Label(self.group.interior(),text='Couleur de fond :')
            self.lab_.grid(row = 2, column = 0)
            self.ent__=Tkinter.Entry(self.group.interior())
            self.ent__.grid(row = 3, column = 1)
            self.lab__=Tkinter.Label(self.group.interior(),text='couleur du texte :')
            self.lab__.grid(row = 3, column = 0)
            self.ent__.insert ('0','grey0')
            self.ent_.insert ('0','grey100')
            self.b5 = Tkinter.Checkbutton(self.group.interior(), text = '<= Disable',command=self.but1)
            self.b5.grid(row = 4, column = 0,columnspan=2)
            self.dropdown = Pmw.ComboBox(self.group.interior(),
                label_text = 'Relief : ',
	        labelpos = 'nw',
                selectioncommand = self.but2,
		scrolledlist_items = colours,
            )
            self.dropdown.grid(row = 5, column = 0,columnspan=2)
            self.notebook.setnaturalsize()
    def but6 (self):
        global flag
        if flag[6]:
            flag[6]=0
            self._ent.destroy()
            self._lab.destroy()
            self._lab_.destroy()
            self._ent_.destroy()
            self.dropdown4.destroy()
            self.notebook.setnaturalsize()
            flag[5][4]=Tkinter.FLAT
        else :
            flag[6]=1
            self._ent=Tkinter.Entry(self.group4.interior())
            self._ent.grid(row = 1, column = 1)
            self._lab=Tkinter.Label(self.group4.interior(),text='couleur de la page :')
            self._lab.grid(row = 1, column = 0)
            self._ent.insert('0','grey')
            self._ent_=Tkinter.Entry(self.group4.interior())
            self._ent_.grid(row = 3, column = 1)
            self._lab_=Tkinter.Label(self.group4.interior(),text='taille des relief :')
            self._lab_.grid(row = 3, column = 0)
            self._ent_.insert('0','3')
            self.dropdown4 = Pmw.ComboBox(self.group4.interior(),
                label_text = 'Relief : ',
	        labelpos = 'nw',
                selectioncommand = self.but5,
		scrolledlist_items = colours,
            )
            self.dropdown4.grid(row = 2, column = 0,columnspan=2)
            self.notebook.setnaturalsize()
    def but7 (self):
        global flag
        if flag[7]:
            flag[7]=0
            self.__ent.destroy()
            self.__lab.destroy()
            self.notebook.setnaturalsize()
        else :
            flag[7]=1
            self.__ent=Tkinter.Entry(self.group6.interior())
            self.__ent.grid(row = 2, column = 1)
            self.__ent.insert('0','Tk')
            self.__lab=Tkinter.Label(self.group6.interior(),text='Titre :')
            self.__lab.grid(row = 2, column = 0)
            self.notebook.setnaturalsize()
    def labb (self):
        global flag
        if flag[8]:
            self.ae.destroy()
            self.ae2.destroy()
            flag[8]=0
        else :
            flag[8]=1
            self.ae=Tkinter.Entry(self.group5.interior())
            self.ae.insert('0','50')
            self.ae.grid(row = 1, column = 1)
            self.ae2=Tkinter.Label(self.group5.interior(),text='Taille :')
            self.ae2.grid(row = 1, column = 0)
    def but1 (self):
        global flag
        if flag[4]:
            flag[4]=0
        else :
            flag[4]=1
    def aegis2 (self):
        global flag
        if flag[9]:
            flag[9]=0
        else :
            flag[9]=1
    def but2 (self,oo):
        global flag
        if oo == 'Relief sortant' :
            flag[5][0]=Tkinter.RAISED
        elif oo == 'Relief rentrant' :
            flag[5][0]=Tkinter.SUNKEN
        elif oo == 'Pas de relief' :
            flag[5][0]=Tkinter.FLAT
        elif oo == 'Crête' :
            flag[5][0]=Tkinter.RIDGE
        elif oo == 'Sillon' :
            flag[5][0]=Tkinter.GROOVE
        elif oo == 'Bordure' :
            flag[5][0]=Tkinter.SOLID
    def but3 (self,oo):
        global flag
        if oo == 'Relief sortant' :
            flag[5][1]=Tkinter.RAISED
        elif oo == 'Relief rentrant' :
            flag[5][1]=Tkinter.SUNKEN
        elif oo == 'Pas de relief' :
            flag[5][1]=Tkinter.FLAT
        elif oo == 'Crête' :
            flag[5][1]=Tkinter.RIDGE
        elif oo == 'Sillon' :
            flag[5][1]=Tkinter.GROOVE
        elif oo == 'Bordure' :
            flag[5][1]=Tkinter.SOLID
            
    def but4 (self,oo):
        global flag
        if oo == 'Relief sortant' :
            flag[5][2]=Tkinter.RAISED
        elif oo == 'Relief rentrant' :
            flag[5][2]=Tkinter.SUNKEN
        elif oo == 'Pas de relief' :
            flag[5][2]=Tkinter.FLAT
        elif oo == 'Crête' :
            flag[5][2]=Tkinter.RIDGE
        elif oo == 'Sillon' :
            flag[5][2]=Tkinter.GROOVE
        elif oo == 'Bordure' :
            flag[5][2]=Tkinter.SOLID
            
    def but5 (self,oo):
        global flag
        if oo == 'Relief sortant' :
            flag[5][3]=Tkinter.RAISED
        elif oo == 'Relief rentrant' :
            flag[5][3]=Tkinter.SUNKEN
        elif oo == 'Pas de relief' :
            flag[5][3]=Tkinter.FLAT
        elif oo == 'Crête' :
            flag[5][3]=Tkinter.RIDGE
        elif oo == 'Sillon' :
            flag[5][3]=Tkinter.GROOVE
        elif oo == 'Bordure' :
            flag[5][3]=Tkinter.SOLID
    def but5 (self,oo):
        global flag
        if oo == 'Relief sortant' :
            flag[5][4]=Tkinter.RAISED
        elif oo == 'Relief rentrant' :
            flag[5][4]=Tkinter.SUNKEN
        elif oo == 'Pas de relief' :
            flag[5][4]=Tkinter.FLAT
        elif oo == 'Crête' :
            flag[5][4]=Tkinter.RIDGE
        elif oo == 'Sillon' :
            flag[5][4]=Tkinter.GROOVE
        elif oo == 'Bordure' :
            flag[5][4]=Tkinter.SOLID
    def lab1 (self):
        global flag
        if flag[1]:
            flag[1]=0
            self.lab1.destroy()
            self.ent1.destroy()
            self.lab1_.destroy()
            self.ent1_.destroy()
            self.lab1__.destroy()
            self.ent1__.destroy()
            self.dropdown1.destroy()
            flag[5][1]=Tkinter.FLAT
            self.notebook.setnaturalsize()
        else :
            flag[1]=1
            self.ent1=Tkinter.Entry(self.group2_1.interior())
            self.ent1.grid(row = 1, column = 1)
            self.lab1=Tkinter.Label(self.group2_1.interior(),text='Texte sur le label :')
            self.lab1.grid(row = 1, column = 0)
            self.ent1_=Tkinter.Entry(self.group2_1.interior())
            self.ent1_.grid(row = 2, column = 1)
            self.lab1_=Tkinter.Label(self.group2_1.interior(),text='Couleur de fond :')
            self.lab1_.grid(row = 2, column = 0)
            self.ent1__=Tkinter.Entry(self.group2_1.interior())
            self.ent1__.grid(row = 3, column = 1)
            self.lab1__=Tkinter.Label(self.group2_1.interior(),text='couleur du texte :')
            self.lab1__.grid(row = 3, column = 0)
            self.ent1__.insert ('0','grey0')
            self.ent1_.insert ('0','grey100')
            self.dropdown1 = Pmw.ComboBox(self.group2_1.interior(),
                label_text = 'Relief : ',
	        labelpos = 'nw',
                selectioncommand = self.but3,
		scrolledlist_items = colours,
            )
            self.dropdown1.grid(row = 5, column = 0,columnspan=2)
            self.notebook.setnaturalsize()
            
    def lab2 (self):
        global flag
        if flag[2]:
            flag[2]=0
            self.lab2.destroy()
            self.ent2.destroy()
            self.lab2_.destroy()
            self.ent2_.destroy()
            self.lab2__.destroy()
            self.ent2__.destroy()
            self.dropdown2.destroy()
            flag[5][2]=Tkinter.FLAT
            self.notebook.setnaturalsize()
        else :
            flag[2]=1
            self.ent2=Tkinter.Entry(self.group2_2.interior())
            self.ent2.grid(row = 1, column = 1)
            self.lab2=Tkinter.Label(self.group2_2.interior(),text='Texte sur le label :')
            self.lab2.grid(row = 1, column = 0)
            self.ent2_=Tkinter.Entry(self.group2_2.interior())
            self.ent2_.grid(row = 2, column = 1)
            self.lab2_=Tkinter.Label(self.group2_2.interior(),text='Couleur de fond :')
            self.lab2_.grid(row = 2, column = 0)
            self.ent2__=Tkinter.Entry(self.group2_2.interior())
            self.ent2__.grid(row = 3, column = 1)
            self.lab2__=Tkinter.Label(self.group2_2.interior(),text='couleur du texte :')
            self.lab2__.grid(row = 3, column = 0)
            self.ent2__.insert ('0','grey0')
            self.ent2_.insert ('0','grey100')
            self.dropdown2 = Pmw.ComboBox(self.group2_2.interior(),
                label_text = 'Relief : ',
	        labelpos = 'nw',
                selectioncommand = self.but4,
		scrolledlist_items = colours,
            )
            self.dropdown2.grid(row = 5, column = 0,columnspan=2)
            self.notebook.setnaturalsize()
            
    def lab3 (self):
        global flag
        if flag[3]:
            flag[3]=0
            self.lab3.destroy()
            self.ent3.destroy()
            self.lab3_.destroy()
            self.ent3_.destroy()
            self.lab3__.destroy()
            self.ent3__.destroy()
            self.dropdown3.destroy()
            flag[5][3]=Tkinter.FLAT
            self.notebook.setnaturalsize()
        else :
            flag[3]=1
            self.ent3=Tkinter.Entry(self.group2_3.interior())
            self.ent3.grid(row = 1, column = 1)
            self.lab3=Tkinter.Label(self.group2_3.interior(),text='Texte sur le label :')
            self.lab3.grid(row = 1, column = 0)
            self.ent3_=Tkinter.Entry(self.group2_3.interior())
            self.ent3_.grid(row = 2, column = 1)
            self.lab3_=Tkinter.Label(self.group2_3.interior(),text='Couleur de fond :')
            self.lab3_.grid(row = 2, column = 0)
            self.ent3__=Tkinter.Entry(self.group2_3.interior())
            self.ent3__.grid(row = 3, column = 1)
            self.lab3__=Tkinter.Label(self.group2_3.interior(),text='couleur du texte :')
            self.lab3__.grid(row = 3, column = 0)
            self.ent3__.insert ('0','grey0')
            self.ent3_.insert ('0','grey100')
            self.dropdown3 = Pmw.ComboBox(self.group2_3.interior(),
                label_text = 'Relief : ',
	        labelpos = 'nw',
                selectioncommand = self.but5,
		scrolledlist_items = colours,
            )
            self.dropdown3.grid(row = 5, column = 0,columnspan=2)
            self.notebook.setnaturalsize()

######################################################################

if __name__ == '__main__':
    root = Tkinter.Tk()    
    Pmw.initialise(root)
    widget = Demo(root)
    root.mainloop()

Conclusion :


/

A voir également

Ajouter un commentaire

Commentaires

Messages postés
336
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
8 novembre 2011
1
je vais effectuer cette petite modification...
Messages postés
382
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
8 novembre 2010
11
Bonjours,

C'est un beau petit programme qui vaut bien un 10/10 !

Part contre, je te déconseille d'utiliser "root.bell()" pour dire que ton fichier est créé. En effet cette fonction est surtout créé pour prévenir l'utilisateur qu'un problème est survenu (ce qui n'est pas vraiment le cas ici !). Je te conseille d'utiliser une boite de dialogue pour sauvegarder le script :



from tkFileDialog import asksaveasfile # Importation de la bibliothèque

#########################


ofi =asksaveasfile(filetypes=[("Fichier Python",".py"),("Tous","*")])
ofi.write(self.main) # self.main étant le text à inscrire dans le fichier Python (cf. ligne 135)
ofi.close()



Voila, bonne programmation

___________
Aéra Group
Messages postés
336
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
8 novembre 2011
1
donc premier commentaires :

j'ai utilisé try :
pour l'ouverture du fichier.
Il ne faut mettre de le nom du fichier (ca me paraissait logique mais bon...)
et pour l'ortho, tu me fais mal au coeur...

donc second commentaires :
les + sont utilisé lorsque tu veut toi même ajouter des widjets..

dans importation on met from -- import *

dans fonction on met
def --(*--) :
--

et dans widjet on met

Button(command=--,text='--')

etc..

mais biensur t pas obligé (c l'avantage du prog)

de plus pour tes erreur elles ne se produisent pas chez moi...
et quand on appuit sur le bouton 'créer' j'utilise root.bell() qui fait clignoter la fenetre (sous win)

et vla...

et oui mon programme est HORRIBLEMENT mal ecrit...
je n'arrive même pu a me relire..

c a cause de ma methode de fabrication :

on ajoute quelque truc tout les mois ...

bon a++

et pour les jouieurs de guilde wars : mon psedo est 'hunters hacker' et 'hunters killers'
Messages postés
86
Date d'inscription
jeudi 18 août 2005
Statut
Membre
Dernière intervention
20 février 2007

Nouvelles remarques
En fait quand on clique sur le bouton "créer", on a l'impression que rien ne se passe; mais en réalité, le fichier est bien créé dans Python25.
Quand on ouvre ce fichier, il apparait une erreur de syntaxe : il manque une indentation ligne 125
(devant : can.create_line(event.x,event.y,event.x+1,event.y+1,fill='grey100')
Autre point : le bouton "Quitter" lève une exception et plante le run.
Dernier point : je n'ai pas compris comment utiliser "les +" ??? Que faut-il mettre dans les trois cases ???
Ortho : "Widget"
HCD
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.