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:




3 comentarios:
Saludos !!!
Mi nombre es Juan. Me parecen muy interesantes los tutoriales sobre programación en python, de hecho, estoy aprendiendo este lenguaje porque es muy potente y con muchas aplicaciones. Sería bueno un tutorial sobre como crear un paquete deb a partir de nuestro propio código fuente.
Saludos Juan.
Si tengo en lista hacer ese tutorial. Espero poder tocar ese tema el fin de semana que viene.
Cammbiaría el self.textEdit = QtGui.QTextEdit() por un QtGui.QPlainTextEdit()
Publicar un comentario en la entrada