Foros del Web » Programando para Internet » Python »

ayuda con StyleTextCtrl

Estas en el tema de ayuda con StyleTextCtrl en el foro de Python en Foros del Web. ya hice mi codigo y quiero hacerlo con esto pero no me sale y sale error en 'stc' que no esta definido y ya no ...
  #1 (permalink)  
Antiguo 18/10/2008, 16:31
 
Fecha de Ingreso: mayo-2008
Mensajes: 499
Antigüedad: 15 años, 11 meses
Puntos: 1
Exclamación ayuda con StyleTextCtrl

ya hice mi codigo y quiero hacerlo con esto pero no me sale y sale error en 'stc'
que no esta definido y ya no se que mas hacerle

Código python:
Ver original
  1. import wx
  2. import sys
  3. import os
  4. ID_STAT = 2
  5. ID_TOOL = 3
  6.  
  7. class Styled(wx.stc.StyledTextCtrl):
  8.     def __init__(self, parent, id, pos, size, style, validator, name) :
  9.         wx.stc.StyledTextCtrl.__init__(self, parent, id, pos, size, style, validator, name)
  10.        
  11. class Editor(wx.Frame):
  12.     def __init__(self, parent, id, title):
  13.         wx.Frame.__init__(self, parent, id, title, size=(550, 580))
  14.        
  15.        
  16.         menubar = wx.MenuBar()
  17.         file = wx.Menu()
  18.         new = wx.MenuItem(file, 101, '&New\tCtrl+N', 'Creates a new document')
  19.         file.AppendItem(new)
  20.        
  21.         open = wx.MenuItem(file, 102, '&Open\tCtrl+O', 'Open an existing file')
  22.         file.AppendItem(open)
  23.         save = wx.MenuItem(file, 103, '&Save\tCtrl+S', 'Save the file')
  24.         file.AppendItem(save)
  25.         file.AppendSeparator()
  26.         quit = wx.MenuItem(file, wx.ID_EXIT, '&Quit\tCtrl+Q', 'Exit program')
  27.         file.AppendItem(quit)
  28.  
  29.         edit = wx.Menu()
  30.         cut = wx.MenuItem(edit, 106, '&Cut\tCtrl+K', 'Cut the Selection')
  31.         edit.AppendItem(cut)
  32.         copy = wx.MenuItem(edit, 107,  '&Copy\tCtrl+C', 'Copy the Selection')
  33.         edit.AppendItem(copy)
  34.         select = wx.MenuItem(edit, 104,  '&Select\tCtrl+E', 'Selact All')
  35.         edit.AppendItem(select)
  36.         paste = wx.MenuItem(edit, 108, '&Paste\tCtrl+V', 'Paste text from clipboard')
  37.         edit.AppendItem(paste)
  38.         delete = wx.MenuItem(edit, 109, '&Delete\tCtrl+X', 'Delete the selected text')
  39.         edit.AppendItem(delete)
  40.         view = wx.Menu()
  41.         self.shst = view.Append(ID_STAT, 'Show statusbar', 'Show Statusbar', kind=wx.ITEM_CHECK)
  42.         self.shtl = view.Append(ID_TOOL, 'Show toolbar', 'Show Toolbar', kind=wx.ITEM_CHECK)
  43.         view.Check(ID_STAT, True)
  44.         view.Check(ID_TOOL, True)
  45.  
  46.         self.Bind(wx.EVT_MENU, self.NewApplication, id=101)
  47.         self.Bind(wx.EVT_MENU, self.OnOpenFile, id=102)
  48.         self.Bind(wx.EVT_MENU, self.OnSaveFile, id=103)
  49.  
  50.         self.Bind(wx.EVT_MENU, self.OnCut, id=106)
  51.         self.Bind(wx.EVT_MENU, self.OnCopy, id=107)
  52.         self.Bind(wx.EVT_MENU, self.OnPaste, id=108)
  53.         self.Bind(wx.EVT_MENU, self.OnDelete, id=109)
  54.         self.Bind(wx.EVT_MENU, self.OnSelectAll, id=104)
  55.        
  56.  
  57.         self.Bind(wx.EVT_MENU, self.ToggleStatusBar, id=ID_STAT)
  58.         self.Bind(wx.EVT_MENU, self.ToggleToolBar, id=ID_TOOL)
  59.        
  60.  
  61.         menubar.Append(file, '&File')
  62.         menubar.Append(edit, '&Edit')
  63.         menubar.Append(view, '&View')
  64.         self.SetMenuBar(menubar)
  65.  
  66.         self.count = 5
  67.  
  68.         self.toolbar = self.CreateToolBar(wx.TB_HORIZONTAL)
  69.         self.toolbar.AddLabelTool(101, '', wx.Bitmap('Lamp/fil.png'))
  70.         self.toolbar.AddLabelTool(102, '', wx.Bitmap('Lamp/ab.png'))
  71.         self.toolbar.AddLabelTool(103, '', wx.Bitmap('Lamp/kep.png'))
  72.         self.toolbar.AddLabelTool(104, '', wx.Bitmap('Lamp/sel.png'))
  73.         self.toolbar.AddLabelTool(106, '', wx.Bitmap('Lamp/cut.png'))
  74.         self.toolbar.AddLabelTool(wx.ID_EXIT, '', wx.Bitmap('Lamp/sar.png'))
  75.         self.toolbar.EnableTool(wx.ID_REDO, False)
  76.      
  77.         self.toolbar.Realize()
  78.  
  79.         self.Bind(wx.EVT_TOOL, self.OnExit, id=wx.ID_EXIT)
  80.  
  81.  
  82.         self.control = wx.stc.StyledTextCtrl(OnInit)
  83.         self.dirname = ''
  84.         self.statusbar = self.CreateStatusBar()
  85.         self.Centre()
  86.         self.Show(True)
  87.         #aqui
  88.     def NewApplication(self, event):
  89.         editor = Editor(None, -1, 'Editor')
  90.         editor.Centre()
  91.         editor.Show()
  92.  
  93.     def OnOpenFile(self,e):
  94.         dlg = wx.FileDialog(self, "Choose a file", self.dirname, "", "*.*", wx.OPEN)
  95.         if dlg.ShowModal() == wx.ID_OK:
  96.             self.filename=dlg.GetFilename()
  97.             self.dirname=dlg.GetDirectory()
  98.  
  99.            
  100.             filehandle=open(os.path.join(self.dirname, self.filename),'r')
  101.             self.control.SetValue(filehandle.read())
  102.             filehandle.close()
  103.  
  104.            
  105.             self.SetTitle("Editing ... "+self.filename)
  106.            
  107.         dlg.Destroy()
  108.  
  109.     def DoOpenFile(self):
  110.         wcd = 'All files (*)|*|Editor files (*.ef)|*.ef|'
  111.         dir = os.getcwd()
  112.         open_dlg = wx.FileDialog(self, message='Choose a file', defaultDir=dir, defaultFile='',
  113.             wildcard=wcd, style=wx.OPEN|wx.CHANGE_DIR)
  114.         if open_dlg.ShowModal() == wx.ID_OK:
  115.             path = open_dlg.GetPath()
  116.  
  117.             try:
  118.                 file = open(path, 'r')
  119.                 text = file.read()
  120.                 file.close()
  121.                 if self.text.GetLastPosition():
  122.                     self.text.Clear()
  123.                 self.text.WriteText(text)
  124.                 self.last_name_saved = path
  125.                 self.statusbar.SetStatusText('', 1)
  126.                 self.modify = False
  127.  
  128.             except IOError, error:
  129.                 dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error))
  130.                 dlg.ShowModal()
  131.  
  132.             except UnicodeDecodeError, error:
  133.                 dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error))
  134.                 dlg.ShowModal()
  135.  
  136.         open_dlg.Destroy()
  137.  
  138.     def OnSaveFile(self,e):
  139.        
  140.         dlg = wx.FileDialog(self, "Choose a file", self.dirname, "", "*.*", \
  141.                 wx.SAVE | wx.OVERWRITE_PROMPT)
  142.         if dlg.ShowModal() == wx.ID_OK:
  143.             itcontains = self.control.GetValue()
  144.  
  145.             self.filename=dlg.GetFilename()
  146.             self.dirname=dlg.GetDirectory()
  147.             filehandle=open(os.path.join(self.dirname, self.filename),'w')
  148.             filehandle.write(itcontains)
  149.             filehandle.close()
  150.         dlg.Destroy()
  151.  
  152.     def OnCut(self, event):
  153.         self.control.Cut()
  154.  
  155.     def OnCopy(self, event):
  156.         self.control.Copy()
  157.  
  158.     def OnPaste(self, event):
  159.         self.control.Paste()
  160.  
  161.     def OnDelete(self, event):
  162.         frm, to = self.control.GetSelection()
  163.         self.control.Remove(frm, to)
  164.  
  165.     def OnSelectAll(self, event):
  166.         self.control.SelectAll()
  167.  
  168.     def OnTextChanged(self, event):
  169.         self.modify = True
  170.         self.statusbar.SetStatusText(' modified', 1)
  171.         event.Skip()
  172.  
  173.     def OnKeyDown(self, event):
  174.         keycode = event.GetKeyCode()
  175.         if keycode == wx.WXK_INSERT:
  176.             if not self.replace:
  177.                 self.statusbar.SetStatusText('INS', 2)
  178.                 self.replace = True
  179.             else:
  180.                 self.statusbar.SetStatusText('', 2)
  181.                 self.replace = False
  182.         event.Skip()
  183.  
  184.     def OnAbout(self, event):
  185.         dlg = wx.MessageDialog(self, '\tEditor\t\n Another Tutorial\njan bodnar 2005-2006',
  186.                                 'About Editor', wx.OK | wx.ICON_INFORMATION)
  187.         dlg.ShowModal()
  188.         dlg.Destroy()
  189.  
  190.     def OnExit(self, event):
  191.         dlg = wx.MessageDialog(self, 'Are you sure to quit editor?', 'Please Confirm', wx.YES_NO |
  192.         wx.NO_DEFAULT | wx.ICON_QUESTION)
  193.         if dlg.ShowModal() == wx.ID_YES:
  194.             self.Close(True)
  195.  
  196.     def ToggleStatusBar(self, event):
  197.         if self.shst.IsChecked():
  198.             self.statusbar.Show()
  199.         else:
  200.             self.statusbar.Hide()
  201.  
  202.     def ToggleToolBar(self, event):
  203.         if self.shtl.IsChecked():
  204.             self.toolbar.Show()
  205.         else:
  206.             self.toolbar.Hide()
  207.  
  208. app = wx.App()
  209. Editor(None, 1, 'Editor')
  210. app.MainLoop()

Última edición por iozk; 18/10/2008 a las 16:36
  #2 (permalink)  
Antiguo 18/10/2008, 17:42
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda con StyleTextCtrl

Te faltó importar wx.stc
El código no funciona porque, habiendo importado "wx", intentás acceder a "wx.stc.otracosa".
Lo solucionás agregando

import wx.stc

al principio del programa, o

from wx import stc

Luego tenés otro error, relacionado con OnInit (línea 82) Estuve buscando pero no encontré nada claro sobre esa variable, el caso es que el intérprete se queja de que no está definida.


Saludos
  #3 (permalink)  
Antiguo 19/10/2008, 13:08
 
Fecha de Ingreso: mayo-2008
Mensajes: 499
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: ayuda con StyleTextCtrl

ya quedo pero no salio los numeros como le hago ahi
la linea devio haver sido:
wx.stc.StyledTextCtrl(self)

esque el OnInit no tenia 'def' y se lo quite y mejor le puse asi pero no sali los numeros por que??

como los agrego?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:50.