IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

wxPython Discussion :

Quel contrôle pour un calendrier ?


Sujet :

wxPython

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Par défaut Quel contrôle pour un calendrier ?
    Bonjour,

    Je souhaite créer un calendrier personnalisé (c'est pourquoi je l'utilise pas les contrôles calendar existant). Je veux pouvoir afficher du texte ou des images dans les cases et que chaque case réagisse au click ou au passage de la souris (bref comme un contrôle calendrier classique).

    J'utilise un GridSizer pour faire le tableau. Ca marche très bien. MAIS je ne trouve pas de contrôle satisfaisant pour faire les cases-jours. J'ai essayé avec les boutons mais il n'y a pas assez de possibilités concernant l'affichage de textes dedans et j'ai essayé les TextCtrl mais je n'arrive pas à faire réagir la souris comme je le souhaite.

    Donc, quel contrôle utiliser ? la réponse doit être simple j'imagine, mais je sèche dur là...

    Merci pour vos réponses !!!

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    un panel?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Par défaut
    Merci pour ta réponse.

    Mais, d'après toi, est-ce qu'il me serait par exemple de faire changer la couleur du panel si le curseur de la souris passe dessus ?

    EDIT : A première vue, cette idée me paraît excellente, mais je ne trouve toujours pas comment faire réagir la souris...

  4. #4
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    un exemple basique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     
     
    import wx
     
    class MyPanel(wx.Panel):
     
    	def __init__(self, *args, **kwargs):
     
    		wx.Panel.__init__(self, *args, **kwargs)
    		self.SetBackgroundColour((255, 255, 255))
    		self.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter)
    		self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave)
     
    	def OnEnter(self, evt):
    		self.SetBackgroundColour((255, 0, 0))
    		self.Refresh()
    		evt.Skip()
     
    	def OnLeave(self, evt):
    		self.SetBackgroundColour((255, 255, 255))
    		self.Refresh()
    		evt.Skip()
     
    class MyFrame(wx.Frame):
     
    	def __init__(self, *args, **kwargs):
     
    		wx.Frame.__init__(self, *args, **kwargs)
    		panel = MyPanel(self, -1)
     
     
    if __name__ == "__main__":
     
    	app = wx.PySimpleApp(redirect=False)
    	frame = MyFrame(None, -1, 'test panel')
    	frame.Show(True)
    	app.MainLoop()

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Par défaut
    Merci.

    Tu m'a encore donné un sacré coup de main. Ca devient une habitude . Merci pour ta générosité.

    D'ailleurs, j'en profite encore un peu (honte sur moi mais bon...). Histoire que je ne sois plus un boulet, pourrais-tu me dire comment tu trouves, par exemple, les méthodes SetBackgroundColour ou wx.EVT_ENTER_WINDOW pour le PANEL dans la documentation ?

    Parce que là, j'étais en train de la lire mais je ne vois pas du tout ces expressions... (je cherche sur : http://www.wxpython.org/docs/api/)

    Saurais-je mal chercher ou est-ce caché autre part ? (Ta réponse me permettrait sûrement d'être un peu plus autonome).

    Merci encore

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Par défaut
    Eh bien je crois que j'ai trouvé la réponse à ma question : Panel appartient à Windows et donc hérite de ces "propriétés". J'espère que je ne me trompe pas...

    Bon, j'ai encore une colle :

    Le coup du panel pour chaque case fonctionne à merveille. J'ai placé dans chaque panel un StaticText contenant le Numéro du jour. Mais le problème est que quand je passe la souris sur ce StaticText, le panel ne réagit bien évidemment plus.

    Cela fonctionne si je mets StaticText.Enable(False). mais dans ce cas, le texte devient gris, ce qui ne me plaît pas forcément. Auriez-vous une combine pour contrer ce problème ?

    Merci pour vos réponses

  7. #7
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Bien vu pour le panel heritant de window, c'est exactement ça.
    Concernant ton autre problème, peux-tu poster un bout de code pour pouvoir le tester.

Discussions similaires

  1. Quel Contrôle pour escalier de répertoire?
    Par KiraX10A dans le forum Visual C++
    Réponses: 1
    Dernier message: 04/01/2010, 16h46
  2. [Debutant] Quel contrôle pour faire
    Par vpet dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/05/2008, 15h39
  3. Quel contrôle utilisez-vous pour calendar ?
    Par rad_hass dans le forum ASP.NET
    Réponses: 20
    Dernier message: 14/03/2008, 16h04
  4. Quel contrôle utiliser pour agenda?
    Par gangsterus dans le forum VB.NET
    Réponses: 4
    Dernier message: 30/01/2008, 18h44
  5. Quel CMS pour un site sur l'événementiel? (Le calendrier est très important)
    Par elraton dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 17/09/2007, 13h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo