Accueil » Python » Forums Python » Forum général Python » Modifier le widget d'une autre classe (wxPython)

 • Modifier le widget d'une autre classe (wxPython)

Document Actions
Réponses: 0   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

 • Modifier le widget d'une autre classe (wxPython)

Posté par Alicia le 09/01/2008 19:48
Bonjour,

Je souhaite ajouter une phrase dans un wx.TextCtrl lors d'un clic sur un bouton, d'une fenêtre d'une autre classe.

Voici mon code :

code:
class VarGUI(object):
    currentBuffer = ""
    currentFile = ""
    
class VarPOL(object):
    pathDirElseRun = ""
    nameScriptRunning = ""
    
class VarOther(object):
    int3 = 0
    
########################## ONGLETS ##################################################

class OngletsText(wx.Notebook): #Onglets pour les fichiers textes
    def __init__(self, parent):
wx.Notebook.__init__(self, parent, -1)
        
    def addPage(self, name):
        panelPage = wx.Panel(self, -1)
        currentTextAreaO = wx.TextCtrl(panelPage, -1, "", wx.DefaultPosition, (1024, 768), wx.TE_MULTILINE)  
        self.AddPage(panelPage, name)
        
    def deletePage(self, index):
        self.DeletePage(index)
    

########################## DECLARATION FENᅵTRE PRINCIPALE #########################

class POLscFenp(wx.Frame): #fenᅵtre principale
    
    def __init__(self, titre):
        wx.Frame.__init__(self, None, -1, title = titre,
            style = wx.DEFAULT_FRAME_STYLE |wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX, size = (1024, 768))
        self.SetIcon(wx.Icon("./images/logo.png", wx.BITMAP_TYPE_ANY))
        
        #print self
        #******************* Menus ******************
        
        #main
        
        self.fileMenu = wx.Menu(style = wx.MENU_TEAROFF)
        self.commandMenu = wx.Menu(style = wx.MENU_TEAROFF)
        self.sendMenu = wx.Menu(style = wx.MENU_TEAROFF)
        self.configMenu = wx.Menu(style = wx.MENU_TEAROFF)
        self.aboutMenu = wx.Menu(style = wx.MENU_TEAROFF)
        
        #sub
        
        self.fileDirectorySubMenu = wx.Menu(style = wx.MENU_TEAROFF)
        self.prefixeSubMenu = wx.Menu(style = wx.MENU_TEAROFF)
        self.wineVersionSubMenu = wx.Menu(style = wx.MENU_TEAROFF)
        self.CDROMSubMenu = wx.Menu(style = wx.MENU_TEAROFF)
        
        #******************* Assignation ***************
        
        #Fichier
        
        self.fileMenu.Append(wx.ID_NEW, "&Nouveau", "Nouveau script")
        self.fileMenu.Append(wx.ID_OPEN, "&Ouvrir", "Ouvrir un script/fichier")
        self.fileMenu.Append(wx.ID_SAVE, "&Enregistrer", "Enregistrer le fichier courant")
        self.fileMenu.Append(wx.ID_SAVEAS, "&Enregistrer sous...","Enregistrer sous")
        self.fileMenu.AppendSeparator()
        self.fileMenu.Append(wx.ID_EXIT, "&Quitter", "Quitter")     
       
        #Send
        
        self.runMenuObject = wx.MenuItem(self.sendMenu, 100, "&Executer le script")
        self.runMenuObject.SetBitmap(wx.Bitmap("images/run.png"))
        self.sendMenu.AppendItem(self.runMenuObject)
        
        self.proposeMenuObject = wx.MenuItem(self.sendMenu, 101, "&Proposer son script")
        self.proposeMenuObject.SetBitmap(wx.Bitmap("images/up.png"))
        self.sendMenu.AppendItem(self.proposeMenuObject)
        
        #Files and directory (SUB)
        
        self.fileDirectorySubMenu.Append(-1, "Se placer dans un répertoire", "")
        
        #Prefix (SUB)
        
        self.prefixeSubMenu.Append(-1, "Créer un préfixe", "")
        
        #Wine Versions (SUB)
        
        self.wineVersionSubMenu.Append(-1, "Assigner une version de Wine", "")
        self.wineVersionSubMenu.Append(-1, "Désassigner une version de Wine", "")
        self.wineVersionSubMenu.Append(-1, "Installer une version de Wine", "")
        self.wineVersionSubMenu.Append(-1, "Désinstaller une version de Wine", "")
                
        #CDROM (SUB)
        
        self.CDROMSubMenu.Append(-1, "Choisir le point de montage", "")
        self.CDROMSubMenu.Append(-1, "Monter le lecteur sur un point de montage", "")
        self.CDROMSubMenu.Append(-1, "Tester la présence d'un executable", "")
        
        #Commands
        
        self.commandMenu.AppendSubMenu(self.fileDirectorySubMenu, "Fichier et répertoire", "")
        self.commandMenu.AppendSubMenu(self.prefixeSubMenu, "Préfixes Wine", "")
        self.commandMenu.AppendSubMenu(self.wineVersionSubMenu, "Versions de Wine", "")
        self.commandMenu.AppendSubMenu(self.CDROMSubMenu, "CD-ROM", "")
        
        #Config
        
        self.configureMenuObject = wx.MenuItem(self.configMenu, 102, "&Configurer l'interface")
        self.configureMenuObject.SetBitmap(wx.Bitmap("images/configure.png"))
        self.configMenu.AppendItem(self.configureMenuObject)
        
        self.langMenuObject = wx.MenuItem(self.configMenu, 103, "&Langue")
        self.langMenuObject.SetBitmap(wx.Bitmap("images/flag.png"))
        self.configMenu.AppendItem(self.langMenuObject)
        
        #About
        
        self.aboutMenu.Append(wx.ID_HELP, "&Aide en ligne", "Obtenir de l'aide en ligne")
        self.aboutMenu.Append(wx.ID_ABOUT, "&À propos de PolScriptCreator", "A propos de PolScriptCreator")
                
        #******************* Implantation **************
        
        self.menuBar = wx.MenuBar()
        self.menuBar.Append(self.fileMenu, "&Fichier")
        self.menuBar.Append(self.sendMenu, "&Finalisation")
        self.menuBar.Append(self.commandMenu, "&Fonctions")
        self.menuBar.Append(self.configMenu, "&Configuration")
        self.menuBar.Append(self.aboutMenu, "&A propos")
        self.SetMenuBar(self.menuBar)
        
        #******************* ToolBar ********************
        
        self.toolBar = self.CreateToolBar(wx.TB_TEXT | wx.TB_FLAT)
        self.toolBar.AddLabelTool(wx.ID_NEW, "Nouveau fichier",wx.ArtProvider.GetBitmap("gtk-new", wx.ART_TOOLBAR))
        self.toolBar.AddLabelTool(wx.ID_OPEN, "Ouvrir un fichier", wx.ArtProvider.GetBitmap("gtk-open", wx.ART_TOOLBAR))
        self.toolBar.AddLabelTool(wx.ID_SAVE, "Sauvegarder", wx.ArtProvider.GetBitmap("gtk-save", wx.ART_TOOLBAR))
        self.toolBar.AddLabelTool(wx.ID_FIND, "Rechercher", wx.ArtProvider.GetBitmap("gtk-find", wx.ART_TOOLBAR))
                                
                                
        #******************* Onglets ********************
        
        self.ongletsnb = OngletsText(self)
        self.ongletsnb.addPage("pouet")
        self.ongletsnb.addPage("pouet2")
        
        #******************* TextArea *******************
                
        self.currentTextArea = wx.TextCtrl(self, -1, "", wx.DefaultPosition, (1024, 768), wx.TE_MULTILINE)  
        
        self.textBox = wx.BoxSizer(wx.VERTICAL)
        self.textBox2 = wx.BoxSizer(wx.HORIZONTAL)
        self.textBox2.Add(self.currentTextArea, 1,wx.ALL)
        self.textBox.Add(self.ongletsnb, 0, wx.ALL)
        self.textBox.Add(self.textBox2, 0, wx.EXPAND | wx.ALL)

        
                
        ######################################### EVENENEMENTS ##############################################
        
        wx.EVT_MENU(self, wx.ID_ABOUT,  self.aboutPOLSC)  
        wx.EVT_MENU(self, wx.ID_OPEN,  self.openFile)  
        wx.EVT_MENU(self, wx.ID_SAVE,  self.saveFile)  
        wx.EVT_MENU(self, wx.ID_SAVEAS,  self.saveFileAs)  
        wx.EVT_MENU(self, wx.ID_EXIT, self.OnQuit)
        wx.EVT_MENU(self, wx.ID_HELP, self.helpOnline)
        wx.EVT_MENU(self, wx.ID_NEW,  self.cdFunctionShow)
        wx.EVT_MENU(self, 100, self.runScript)
        wx.EVT_MENU(self, 101, self.upScript)
        #wx.EVT_CLOSE(self.onQuit)
                    
     ######################################## FONCTIONS GUI ############################################## 
                
    def openFile(self, event):
        self.nameFile1 = wx.FileSelector("Script à ouvrir...")
        self.file1 = open(self.nameFile1 , 'r')
        self.bufferFile1Opened  = self.file1.read()
        self.currentTextArea.AppendText(self.bufferFile1Opened)
        VarGUI.currentFile = self.nameFile1
        self.file1.close()

    def newFile(self, event):
        
        self.dialogSureNew = wx.MessageDialog(self, "Cette action effacera toute modification anterieure. Voulez vous continuer ?", "POLSC", wx.YES_NO | wx.ICON_QUESTION)
        if (self.dialogSureNew.ShowModal() == wx.ID_YES):
            self.currentTextArea.SetValue("")
        
                
    def cdFunctionShow(self, event):
        cdFen = cdFunction(POLscFenp.fenp, "POUET")
    
        
class cdFunction(wx.MiniFrame):
    
    def __init__(self, *args, **kwargs):
        wx.MiniFrame.__init__(self, *args, **kwargs)
        self.parent = self.GetParent()
        
        self.parent.currentTextArea.SetValue("POUEEEEEEEEEEEEEEEEEEET")
        
    
########################## DECLARATION DE L'APPLICATION ###########################

class POLscApp(wx.App):        #instance principale classe application
    
    def OnInit(self):
        fenp = POLscFenp("PlayOnLinux - PolScriptCreator")
        fenp.Center(wx.BOTH)
        fenp.Show(True)
        self.SetTopWindow(fenp)
        
        return True
    
FenpApp = POLscApp(redirect=False)        #création de l'application
FenpApp.MainLoop()


Voilà j'aimerais que depuis la fonction cdFunction je puisse ajouter ma commande et mes paramètres saisies dans cette même fenêtre, et ajouter le texte dans le widget currentTextArea dans POLscFenp.

Je ne sais pas comment faire...

Et une dernière chose, j'ai voulu mettre des ongles comme le prouve ma première classe...sauf que je n'ai pas le notebook afficher (donc on peut pas choisir les onglets).

J'ai enlevé quelques bouts de codes pour alléger...

Voilà un grand merci à ceux qui m'aideront.
Ce sujet ne contient aucune réponse