•
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 :
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.
|