Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1566 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  wxPython --> Comment gérer les boutons qui ouvrent des fenêtres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

wxPython --> Comment gérer les boutons qui ouvrent des fenêtres

n°801649
Ze306
Posté le 21-07-2004 à 11:37:27  profilanswer
 

J'ai un petit soucis qui m'exaspère....
 
Je ne comprends pas comment est ce qu'on fait à faire ouvrir une nouvelle fenetre lorsqu'on clique sur un bouton :
A partir d'un menu, je souhaite ouvrir une nouvelle fenetre en fonction du bouton cliqué.
Puis dans cette nouvelle fenêtre, je veux que les boutons se mettent à jour à l'intérieur tout en effacant les précédants si nécessaire :bounce:

mood
Publicité
Posté le 21-07-2004 à 11:37:27  profilanswer
 

n°801683
masklinn
í dag viðrar vel til loftárása
Posté le 21-07-2004 à 11:47:28  profilanswer
 

Ze306 a écrit :

Je ne comprends pas comment est ce qu'on fait à faire ouvrir une nouvelle fenetre lorsqu'on clique sur un bouton :
A partir d'un menu, je souhaite ouvrir une nouvelle fenetre en fonction du bouton cliqué.


ben tu crées les classes de tes fenêtres (dérivées de dialog ou frame comme tu veux, une classe par fenêtre si elles sont très différentes ou alors des options dans le __init__) et tu les construit (appel constructeur) + show quand on clic sur le bouton (ou alors tu les construit/init à l'init de la fenêtre parent et tu les show quand le bouton est cliqué)

Citation :

Puis dans cette nouvelle fenêtre, je veux que les boutons se mettent à jour à l'intérieur tout en effacant les précédants si nécessaire :bounce:


Si c'est une nouvelle fenêtre ya pas de boutons autres que ceux que t'y as mis normalement  :na:


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°801687
Ze306
Posté le 21-07-2004 à 11:50:09  profilanswer
 

Pour la deuxième partie, je ne veux pas justement que les boutons de ma nouvelle fenêtre en ouvrent une autre mais simplement que la fenêtre se mette à jour avec les nouvelles options

n°801697
masklinn
í dag viðrar vel til loftárása
Posté le 21-07-2004 à 11:55:20  profilanswer
 

aaaah c'était pas clair, je croyais que tu parlais de la fenêtre popup.
 
Ben pour la mise a jour, il me semble que tu peux changer les callbacks/labels/autres d'un bouton sans aucun problème (ce qui évite de dégager l'ancien bouton pour le remplacer par un nouveau), il faut simplement que tes boutons soient déclarés en objets de la classe (self.button_name) et non en locaux à la fonction dans laquelle ils ont été créés (button_name) de manière à être accessible par les autres fcts et donc modifiables


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°801719
Ze306
Posté le 21-07-2004 à 12:11:03  profilanswer
 

Autre question, comme chaque fenêtre est une classe, chacune d'elle se trouve dans un fichier différent.
Est ce qu'il faut faire un import du nom de ce fichier dans chaque fichier ou cette classe va etre appelée?

n°801724
masklinn
í dag viðrar vel til loftárása
Posté le 21-07-2004 à 12:14:09  profilanswer
 

tu peux mettre plusieurs classes dans un même fichier source en python, ca gène pas hein -_-
 
Sinon, oui, il faut faire import nom_du_source (dans lequel est la classe, sans le ".py" ) et ta classe se trouvera a nom_du_source.nom_de_classe


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°801800
Ze306
Posté le 21-07-2004 à 13:23:54  profilanswer
 

Personne n'aurait un exemple à me fournir???

n°801825
masklinn
í dag viðrar vel til loftárása
Posté le 21-07-2004 à 13:41:45  profilanswer
 

Code :
  1. #!/bin/env python
  2. # -*- coding: iso-8859-1 -*-
  3. import wx
  4. class MyDialog(wx.Dialog):
  5.     def __init__(self, parent, id, title):
  6.         wx.Dialog.__init__(self, parent, id, title)
  7.         self.parent = parent
  8.         self.Bind(wx.EVT_CLOSE, self.OnClose)
  9.    
  10.     def OnClose(self, event):
  11.         self.parent.OnSupButton(event)       
  12.        
  13. class MyFrame(wx.Frame):
  14.     def __init__(self, parent, ID, title):
  15.         wx.Frame.__init__(self, parent, ID, title, size = (200,100))
  16.        
  17.         self.mybutton = wx.Button(self, wx.NewId(), "Initial" )
  18.        
  19.         self.Bind(wx.EVT_BUTTON, self.OnInitialButton, id = self.mybutton.GetId())
  20.        
  21.         self.dlg = None
  22.        
  23.         self.Show(True)
  24.        
  25.     def OnInitialButton(self, event):
  26.         self.mybutton.SetLabel("\'Sup" )
  27.         self.Bind(wx.EVT_BUTTON, self.OnSupButton, id = self.mybutton.GetId())
  28.         self.dlg = MyDialog(self, -1, "Test Dialog" )
  29.         self.dlg.Show(True)
  30.        
  31.     def OnSupButton(self, event):
  32.         self.mybutton.SetLabel("Initial" )
  33.         self.Bind(wx.EVT_BUTTON, self.OnInitialButton, id = self.mybutton.GetId())
  34.         if self.dlg:
  35.             self.dlg.Destroy()
  36.    
  37. app = wx.PySimpleApp()
  38. frame = MyFrame(None, -1, "Test Frame" )
  39. app.MainLoop()
 

Crée une wx.Frame avec un gros bouton "Initial"
clic sur initial -> devient un bouton "'Sup" et ouvre une boite de dialog
clic sur 'Sup -> fermeture du dialog + retour a bouton "Initial"
fermeture du dialog -> retour au bouton "Initial" sur la frame (suffit d'enlever le self.Bind du dialog pour que ca dégage)


Message édité par masklinn le 04-03-2007 à 18:44:45

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  wxPython --> Comment gérer les boutons qui ouvrent des fenêtres

 

Sujets relatifs
[ADVANCED] gerer les connections browser .transaction en php/mysql : comment gerer 1 trs ds plusieurs scripts ?
manipuler des boutons radio passés en parametre de fonction[resolvu][résolu]gérer les colonnes d'un tableau comme des objets javascript ?
boutons sur wx.FrameComment faire un bouton 3 états avec wxpython / boa constructor ?
Visual C++ , en rajoutant des boutons l'exe se lance plus !associer une action lors de la creation de boutons
Gerer des flux boursiers en Javapb de boutons et de tableaux
Plus de sujets relatifs à : wxPython --> Comment gérer les boutons qui ouvrent des fenêtres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR