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 :

Insérer un widget dans un autre


Sujet :

wxPython

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut Insérer un widget dans un autre
    Bonsoir à tous,

    J'ai découvert wxPython il y a quelque jours et je cherche à savoir si il est possible d' insérer un widget grid dans un wxRichTextCtrl...

    Si quelqu'un a la réponse...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 262
    Points : 93
    Points
    93
    Par défaut
    Voici la solution que j'ai trouvée :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    # !/usr/bin/python
    # -*- coding:Latin-1 -*-
     
    import wx
    import  wx.grid as gridlib
     
    class Grid(gridlib.Grid): 
        def __init__(self, parent,li1,li2,sav):     
            gridlib.Grid.__init__(self, parent, -1,pos=(150,150),size=(300,100)) 
            self.CreateGrid(3, 3)
    	parent.Bind(wx.EVT_MOTION, self.Deplace_tableau)
    	self.Bind(gridlib.EVT_GRID_CELL_LEFT_DCLICK,self.selectionne_tableau)
    	self.deplacer='NON'
     
        def Deplace_tableau(self, event):
            """ Appelé lors du déplacement de la souris."""
    	if self.deplacer!='OUI':
    		return
    	pt = event.GetPosition()  
    	self.Move(pt)
     
        def selectionne_tableau(self,event):
    	''' Change (ou réinitialise) la couleur du tableau et donne alternativement à self.deplacer les valeurs
               'OUI' ou 'NON' permettant ainsi le déplacement du tableau.'''
     
    	# Les couleurs du tableau sont réinitialisées et le déplacement n'est plus autorisé.
    	if self.deplacer=='OUI':
    		self.deplacer='NON'
    		self.SetLabelBackgroundColour(wx.NullColour)
    		self.SetGridLineColour( (192, 192, 192, 255))
    		return
    	# Les couleurs du tableau sont modifiées et le déplacement est autorisé.
    	else:
    		self.deplacer='OUI'
    		self.SetLabelBackgroundColour(wx.RED)
    		self.SetGridLineColour(wx.RED)
     
     
    class Fentre_prin(wx.Frame):
        def __init__(self, parent, title,li1,li2,par,sav): 
            wx.Frame.__init__(self, parent, -1, title,size=(800,600))
    	ma_scroll_window = wx.ScrolledWindow(self)
    	ma_scroll_window.SetBackgroundColour(wx.WHITE)
    	ma_scroll_window.SetScrollbars(20, 20, 55, 40)
     
    	# Création des différents widgets :
    	### bouton :
            b1 = wx.Button(ma_scroll_window, -1, u"Quitter")
            self.Bind(wx.EVT_BUTTON, self.quitter, b1)
    	### richtext :
    	self.ma_RichText= wx.TextCtrl(ma_scroll_window, -1, u"Bonjour !",size=(700,400))
    	self.ma_RichText.WriteText('Il faut un double click dans le tableau pour pouvoir le déplacer !')
    	### grid :
    	tableau2=Grid(self.ma_RichText,li1,li2,sav)
            self.ma_RichText.Layout()
     
    	# Création du sizer et positionnement des wigets :
    	sizer = wx.BoxSizer(wx.VERTICAL)
            sizer.Add(b1, 0, wx.ALL, 5)
    	sizer.Add(self.ma_RichText, 0, wx.ALL, 5)
           	# Le sizer est lié au conteneur :
            ma_scroll_window.SetSizer(sizer)
            ma_scroll_window.Layout()
     
        def quitter(self, evt):
            self.Close()
     
     
    class Debut(wx.Frame):
        def __init__(self, parent, title):
            wx.Frame.__init__(self, parent, -1, title,
                              pos=(150, 150), size=(100, 200),style=wx.DEFAULT_DIALOG_STYLE)
            # Conteneur :
    	panel = wx.Panel(self)
            # Boutons :
            btn = wx.Button(panel, -1, u"Quitter")
            btn1 = wx.Button(panel, -1, u"Nouveau")
            self.Bind(wx.EVT_BUTTON, self.quitter, btn)
            self.Bind(wx.EVT_BUTTON, self.nouveau_tableau, btn1)
    	# Sizer :
    	sizer = wx.BoxSizer(wx.VERTICAL)
            sizer.Add(btn, 0, wx.ALL, 10)
            sizer.Add(btn1, 0, wx.ALL, 10)
            panel.SetSizer(sizer)
            panel.Layout()
     
        def quitter(self, evt):
            self.Close()
     
        def nouveau_tableau(self,evt):
            a=['colonne 1','colonne 2']
            b=['ligne 1','ligne 2']
            c=[] 
     
            frame = Fentre_prin(None, u"Tableau",a,b,self,c)
    	frame.Show(True)
            return True
     
     
    class MyApp(wx.App):
        def OnInit(self):
            frame = Debut(None, u"Début")
            self.SetTopWindow(frame)
            frame.Show(True)
            return True
     
    try:
    	app = MyApp()
     
    except:
    	app = MyApp(redirect=True)
     
    app.MainLoop()

    - J'utilise en fait la RichText comme un conteneur.
    - Je laisse volontairement ce sujet ouvert pour permettre à tous de le corriger ou de l'améliorer...
    - Je cherche encore à déplacer ce tableau en maintenant le bouton gauche enfoncé et donc là aussi si quelqu'un a une idée...

Discussions similaires

  1. Insérer un form dans un autre form
    Par mrocks dans le forum Windows Forms
    Réponses: 10
    Dernier message: 04/05/2009, 17h53
  2. Insérer un projet dans un autre projet
    Par Calvein dans le forum Eclipse PHP
    Réponses: 1
    Dernier message: 20/04/2009, 09h47
  3. [HTML] Insérer fichier HTML dans un autre fichier HTML
    Par Ange44 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 29/11/2007, 16h53
  4. Insérer un clip dans un autre
    Par vence dans le forum Flash
    Réponses: 2
    Dernier message: 06/03/2007, 00h19
  5. Comment insérer une form dans une autre form ?
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/07/2005, 11h15

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