Advertisement
Guest User

Demo 2 des widgets Tkinter

a guest
Dec 10th, 2011
425
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 11.20 KB | None | 0 0
  1. #demowidget2f.py (programme complet)
  2. import sys
  3. from Tkinter import *
  4. import ttk
  5. #import tkMessageBox
  6. #import tkFont
  7. #import tkFileDialog
  8.  
  9. class DemoWidget2:
  10.     #------------------------------------------------------------------
  11.     #
  12.     #------------------------------------------------------------------
  13.     def __init__(self,principale = None):
  14.         self.DefinirVariables()
  15.         f = self.ConstruireWidgets(principale)
  16.         self.PlacerWidgets(f)
  17.        
  18.     #------------------------------------------------------------------
  19.     #
  20.     #------------------------------------------------------------------    
  21.     def DefinirVariables(self):
  22.         self.selectionListeDeroulante1 = StringVar()
  23.         self.valeursC1 = ['Neant','Option 1','Option 2','Option 3']
  24.        
  25.         self.valeurSelection = StringVar()
  26.        
  27.         self.valeurSelection2 = StringVar()
  28.         self.boutonEtat = False
  29.         self.valeurBarreProg2 = StringVar()
  30.  
  31.     def FichierNouveau(self):
  32.         print "Menu - Fichier Nouveau"
  33.     def FichierOuvrir(self):
  34.         print "Menu - Fichier Ouvrir"
  35.     def FichierSauver(self):
  36.         print "Menu -Fichier Sauver"
  37.     def EditionCouper(self):
  38.         print "Menu - Edition Couper"
  39.     def EditionCopier(self):
  40.         print "Menu - Edition Copier"
  41.     def EditionColler(self):
  42.         print "Menu - Edition Coller"
  43.     def AideApropos(self):
  44.         print "Menu - Aide Apropos"
  45.        
  46.     #------------------------------------------------------------------
  47.     #
  48.     #------------------------------------------------------------------    
  49.     def ConstruireWidgets(self,principale):
  50.         fenetre = Frame(principale)
  51.         #==============================================================
  52.         #                        LES MENUS
  53.         #==============================================================
  54.         # Cretion de la barre de menus
  55.         self.barreMenus = Menu(principale)
  56.         # Creation du menu Fichier, et ajout a la barre de menus
  57.         menuFichier = Menu(self.barreMenus, tearoff = 0)
  58.         menuFichier.add_command(label = "Nouveau", command = self.FichierNouveau)
  59.         menuFichier.add_command(label = "Ouvrir", command = self.FichierOuvrir)
  60.         menuFichier.add_command(label = "Sauver", command = self.FichierSauver)
  61.         menuFichier.add_separator()
  62.         menuFichier.add_command(label = "Quitter", command = root.quit)
  63.         self.barreMenus.add_cascade(label = "Fichier", menu = menuFichier)
  64.         # Creation du menu Edition
  65.         menuEdition = Menu(self.barreMenus, tearoff = 0)
  66.         menuEdition.add_command(label = "Couper", command = self.EditionCouper)
  67.         menuEdition.add_command(label = "Copier", command = self.EditionCopier)
  68.         menuEdition.add_command(label = "Coller", command = self.EditionColler)
  69.         self.barreMenus.add_cascade(label = "Edition", menu = menuEdition)
  70.         # Creation du menu Aide
  71.         menuAide = Menu(self.barreMenus, tearoff=0)
  72.         menuAide.add_command(label = "A propos", command = self.AideApropos)
  73.         self.barreMenus.add_cascade(label = "Aide", menu = menuAide)
  74.          # affichage du menu
  75.         principale.config(menu = self.barreMenus)
  76.         #==============================================================
  77.         #                  FIN DES MENUS
  78.         #==============================================================
  79.         self.f1 = Frame(fenetre,
  80.                         relief = SUNKEN,
  81.                         borderwidth = 2,
  82.                         width = 500
  83.                         )
  84.         self.labelListeDeroulante = Label(self.f1, text = "Liste deroulante : ")
  85.         self.listeDeroulante1 = ttk.Combobox(self.f1,
  86.                                   height = "19",
  87.                                   width = 20,
  88.                                   textvariable = self.selectionListeDeroulante1
  89.                                  )
  90.         self.listeDeroulante1['values'] = self.valeursC1
  91.         # associe l'evenement virtuel a une fonction de rappel
  92.         self.listeDeroulante1.bind("<<ComboboxSelected>>",self.testListeDeroulante)
  93.         self.separ = Frame(self.f1,
  94.                           width = 140,
  95.                           height = 2,
  96.                           relief = RIDGE,
  97.                           borderwidth = 2
  98.                           )
  99.         self.labelSelection = Label(self.f1, text = "Selection numerique :")
  100.         self.selection1 = Spinbox(self.f1,
  101.                              from_ = 1.0,
  102.                              to = 10.0,
  103.                              width = 3,
  104.                              textvariable = self.valeurSelection,
  105.                              wrap=True
  106.                              )
  107.         #=======================================
  108.         # Barre de progression
  109.         #=======================================
  110.         self.fBarreProg = Frame(self.f1,
  111.                         relief = SUNKEN,
  112.                         borderwidth = 2
  113.                         )
  114.  
  115.         self.lbl0 = Label(self.fBarreProg,
  116.                         text = "Barres de progression"
  117.                         )
  118.         self.lbl1 = Label(self.fBarreProg,
  119.                         text = "Indeterminee",
  120.                         anchor = 'e'
  121.                         )
  122.         self.barreProg = ttk.Progressbar(self.fBarreProg,
  123.                         orient = HORIZONTAL,
  124.                         length = 100,
  125.                         mode = 'indeterminate',
  126.                         maximum = 100
  127.                         )
  128.         self.btnptest = Button(self.fBarreProg,
  129.                         text = "Demarrer",
  130.                         command = self.TestBarreProg
  131.                         )
  132.         self.lbl2 = Label(self.fBarreProg,
  133.                         text = "Determinee"
  134.                         )
  135.         self.barreProg2 = ttk.Progressbar(self.fBarreProg,
  136.                         orient = HORIZONTAL,
  137.                         length = 100,
  138.                         mode = 'determinate',
  139.                         variable = self.valeurBarreProg2
  140.                         )
  141.         self.selection2 = Spinbox(self.fBarreProg,
  142.                         from_ = 1.0,
  143.                         to = 100.0,
  144.                         textvariable = self.valeurSelection2,
  145.                         wrap = True,
  146.                         width = 5,
  147.                         command = self.SelectionAction
  148.                         )
  149.         #=======================================
  150.         #              ONGLETS
  151.         #=======================================
  152.         self.fenetreOnglets = Frame(self.f1,
  153.                             relief = SUNKEN,
  154.                             borderwidth = 2,
  155.                             width = 500,
  156.                             height = 300
  157.                             )
  158.         self.onglets = ttk.Notebook(self.fenetreOnglets,
  159.                                      width = 490,
  160.                                      height = 290
  161.                                      )
  162.         self.p1 = Frame(self.onglets)
  163.         self.p2 = Frame(self.onglets)
  164.         self.onglets.add(self.p1,text = 'Page 1')
  165.         self.onglets.add(self.p2,text = 'Page 2')
  166.         self.labelPage1 = Label(self.p1,
  167.                           text = "Voici un texte sur la page 1",
  168.                           padx = 3,
  169.                           pady = 3
  170.                           )
  171.        
  172.         return fenetre
  173.        
  174.     #------------------------------------------------------------------
  175.     #
  176.     #------------------------------------------------------------------
  177.     def PlacerWidgets(self,principale):
  178.         fenetre = principale
  179.         fenetre.grid(column = 0, row = 0)
  180.        
  181.         self.f1.grid(column = 0,row = 0)
  182.         self.labelListeDeroulante.grid(column = 0,row = 2)
  183.         self.listeDeroulante1.grid(column = 1,
  184.                         row = 2,
  185.                         columnspan = 4,
  186.                         pady = 2
  187.                         )
  188.         self.separ.grid(column = 0,
  189.                        row = 3,
  190.                        columnspan = 8,
  191.                        sticky = 'we',
  192.                        padx = 3,
  193.                        pady = 3
  194.                        )
  195.         self.labelSelection.grid(column = 0, row = 4)
  196.         self.selection1.grid(column = 1,
  197.                         row = 4,
  198.                         pady = 2
  199.                         )
  200.        
  201.         # Barre de progression
  202.         self.fBarreProg.grid(column = 0,
  203.                         row = 5,
  204.                         columnspan = 8,
  205.                         sticky = 'nsew',
  206.                         padx = 3,
  207.                         pady = 3
  208.                         )
  209.         self.lbl0.grid(column = 0, row = 0)
  210.         self.lbl1.grid(column = 0,
  211.                        row = 1,
  212.                        pady = 3
  213.                        )
  214.         self.barreProg.grid(column = 1, row = 1)
  215.         self.btnptest.grid(column = 3, row = 1)
  216.         self.lbl2.grid(column = 0,
  217.                        row = 2,
  218.                        pady = 3
  219.                        )
  220.         self.barreProg2.grid(column = 1, row = 2)
  221.         self.selection2.grid(column = 3, row = 2)
  222.         self.fenetreOnglets.grid(column = 0,
  223.                          row = 6,
  224.                          columnspan = 8,
  225.                          rowspan = 7,
  226.                          sticky = 'nsew'
  227.                          )
  228.         self.onglets.grid(column = 0,
  229.                            row = 0,
  230.                            columnspan = 11,
  231.                            sticky = 'nsew'
  232.                            )
  233.         self.labelPage1.grid(column = 0,row = 0)
  234.         self.labelPage2 = Label(self.p2,
  235.                           text = 'Voici un texte sur la page 2',
  236.                           padx = 3,
  237.                           pady = 3
  238.                           ).grid(
  239.                                  column = 0,
  240.                                  row = 1
  241.                                  )
  242.  
  243.     def testListeDeroulante(self,p1):
  244.         print self.selectionListeDeroulante1.get()
  245.        
  246.     def TestBarreProg(self):
  247.         if self.boutonEtat == False:
  248.             self.btnptest.config(text="Arreter")
  249.             self.boutonEtat = True
  250.             self.barreProg.start(10)
  251.         else:
  252.             self.btnptest.config(text="Demarrer")
  253.             self.boutonEtat = False
  254.             self.barreProg.stop()
  255.    
  256.     def SelectionAction(self):
  257.         v = self.valeurSelection2.get()
  258.         print v
  259.         #self.barreProg2.value = float(v)
  260.         self.valeurBarreProg2.set(v)
  261.        
  262. if __name__ == '__main__':
  263.     def Center(window):
  264.         # recupere largeur et hauteur de l'ecran
  265.         sw = window.winfo_screenwidth()
  266.         sh = window.winfo_screenheight()        
  267.         # recupere largeur et hauteur de la fenetre
  268.         rw = window.winfo_reqwidth()
  269.         rh = window.winfo_reqheight()
  270.         xc = (sw-rw)/2
  271.         yc = (sh-rh)/2
  272.         print "{0}x{1}".format(rw,rh)
  273.         window.geometry("%dx%d+%d+%d"%(rw,rh,xc,yc))
  274.         window.deiconify()
  275.    
  276.     root = Tk()
  277.     root.title('Demo de plus de widgets')
  278.     demo = DemoWidget2(root)
  279.     root.after(13,Center,root)
  280.     root.mainloop()
  281.  
  282.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement