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

Posted on dom 14 agosto 2011 in Tutorial de Python y PyQt • 2 min read

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.

Editor de archivos - pyqt

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

Editor de archivos, opciones del menú - pyqt

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

Editor de archivos, abrir archivo - pyqt

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

Editor de archivos, editando archivo - pyqt

===

¡Haz tu donativo! Si te gustó el artículo puedes realizar un donativo con Bitcoin (BTC) usando la billetera digital de tu preferencia a la siguiente dirección: 17MtNybhdkA9GV3UNS6BTwPcuhjXoPrSzV

O Escaneando el código QR desde billetera:

17MtNybhdkA9GV3UNS6BTwPcuhjXoPrSzV *