14 ago. 2011

Tutorial de PyQt. Editor de archivos sencillo. Parte 10.

En este artículo se explica como crear un editor de texto sencillo.

Se tendrá una barra de menú con la opción Archivo, dentro de ella se despliega la opción abrir y cerrar aplicación; al abrir la aplicación en la ventana del editor aparecerá el nombre del archivo.

Se utilizarán las siguientes clases:
  • QTextEdit: Define el editor de textos.
  • QAction: Permite definir acciones en el menú.
  • menuBar: Se define la barra de menú.


El código del programa es el siguiente:
#!/usr/bin/env python

import sys
from PyQt4 import QtGui
from PyQt4 import QtCore


class App(QtGui.QMainWindow):
    def __init__(self,parent=None):
        QtGui.QWidget.__init__(self, parent)
        #Se define el tamano de la ventana
        self.setGeometry(0, 50, 600, 400)
        #Se le coloca un titulo a la ventana y se asocia un icono.
        self.setWindowTitle('Editor de Texto:')
        self.setWindowIcon(QtGui.QIcon('./openlogo-50.png'))
        
        #Se define el widget de edicion de texto
        self.textEdit = QtGui.QTextEdit()
        #Se coloca en el centro
        self.setCentralWidget(self.textEdit)
        #Se define la barra de estatus y se le asigna foco
        self.statusBar()
        self.setFocus()
        #Se define la accion abrir archivo, con
        #evento de teclado y mensaje
        openFile = QtGui.QAction('Abrir', self)
        openFile.setShortcut('Ctrl+a')
        openFile.setStatusTip('Abrir archivo nuevo')
        #Se define la accion cerrar aplicacion
        #con evento de teclado y mensaje
        closeApp = QtGui.QAction('Cerrar',self)
        closeApp.setShortcut('Ctrl+w')
        closeApp.setStatusTip('Cerrar aplicacion')
        
        #Se define la barra de menu
        menubar = self.menuBar()
        #Nombre archivo y se agrega abrir y cerrar aplicacion
        fileMenu = menubar.addMenu('&Archivo')
        fileMenu.addAction(openFile)
        fileMenu.addAction(closeApp)
            
        #se asocia los eventos a la accion abrir archivo y cerrar aplicacion. 
        self.connect(closeApp, QtCore.SIGNAL('triggered()'),QtGui.qApp, QtCore.SLOT('quit()'))
        self.connect(openFile, QtCore.SIGNAL('triggered()'), self.showDialog)
        


    def showDialog(self):
        #Se captura el nombre del archivo a abrir
        filename = QtGui.QFileDialog.getOpenFileName(self, 'Abrir archivo',
                    '/home')
        #Se define un neuvo titulo a la ventan de la aplicacion
        self.setWindowTitle('Editor de Texto:%s' %filename)
        #Se abre el archivo y se
        #desplega la informacion en el widget de
        #edicion de texto
        fname = open(filename)
        data = fname.read()
        self.textEdit.setText(data)
    
            
#Se ejecuta el programa principal
if __name__ == "__main__":    
   #Se instancia la clase QApplication    
   app = QtGui.QApplication(sys.argv)    
   #Se instancia el objeto QuitButton    
   qb = App()    
   #Se muestra la aplicacion    
   qb.show()    
   #Se sale de la aplicacion    
   sys.exit(app.exec_())


La siguiente figura muestra la aplicación al inicio.

La siguiente figura muestra las opciones de la barra de menú:


La siguiente figura muestra la ventana de dialogo de abrir archivo:

La última figura muestra ya la información del archivo en el editor de texto:

Publicar un comentario en la entrada

AddThis