Python Clase 6
Python Clase 6
QT
Departamento de Informática
Universidad Nacional de Salta
Setiembre, 2022
1 / 32
GUI
QT
Agenda
1 GUI
2 QT
Hello QT
Segundo ejemplo
Tercer ejemplo
Cuarto ejemplo
Quinto ejemplo
2 / 32
GUI
QT
3 / 32
GUI
QT
Link: https://pythonbasics.org/install-pyqt/
Link: https://gist.github.com/ujjwal96/
1dcd57542bdaf3c9d1b0dd526ccd44ff
4 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
Sin más, veamos el primer ejemplo con QT. Para ello, tiene que
estar instalado al igual que QT Designer.
Veremos un Hello QT!
Paso 1: Abrir QT Designer
Elegimos Main Window y hacemos clic en Crear.
5 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
Paso 2: Setear el UI
Al Window, le agregan un Label simplementen arrastrándolo de la
paleta. Cambian el texto y graban el diseño. Por ejemplo, uno.ui.
6 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
7 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
El problema
8 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
El UI
9 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
La lógica
10 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
Agregando comportamiento
def setupUiComponents(self):
self.btnBorraTodo.clicked.connect(self.borrarTexto)
self.btn0.clicked.connect(lambda: self.insertaFin(’0’))
self.btnSuma.clicked.connect(lambda: self.insertaFin(’+’))
self.btnIgual.clicked.connect(lambda: self.evalua())
def borrarTexto(self):
self.edtTexto.setText(””)
def insertaFin(self, caracter):
texto = self.edtTexto.toPlainText()
self.edtTexto.setText(texto + caracter)
def evalua(self):
texto = self.edtTexto.toPlainText()
self.edtTexto.setText(str(eval(texto)))
11 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
Corriendo el .py
12 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
El Problema
13 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
El UI
14 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
La lógica
15 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
Detalles de implementación
16 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
Corriendo el .py
18 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
El problema
19 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
El UI
20 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
El UI2
21 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
La lógica
22 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
23 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
def loadForm(self,index):
column = index.column()
if column ==4:
# abro el form
row = index.row()
sl = self.tblData.item(row, 0).text()
sw = self.tblData.item(row, 1).text()
pl = self.tblData.item(row, 2).text()
pw = self.tblData.item(row, 3).text()
variety = self.tblData.item(row, 4).text()
self.w = loadForm.clsForm(sl,sw,pl,pw,variety)
self.w.show()
24 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
Corriendo el .py
25 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
El problema
26 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
La lógica
27 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
Detalles de implementación
28 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
def openCSV(self):
fname = QFileDialog.getOpenFileName(self, ’Open file’,
’/home/’,”CSV files (*.csv)”)
if fname[0]:
self.fileName = fname[0]
self.statusBar().showMessage(’Archivo abierto ’ + self.fileName)
self.w = loadCuatro.clsTable(self.fileName)
self.w.show()
else:
self.fileName=”
self.statusBar().showMessage(”No eligio archivo”)
30 / 32
Hello QT
Segundo ejemplo
GUI
Tercer ejemplo
QT
Cuarto ejemplo
Quinto ejemplo
Corriendo el .py
31 / 32
GUI
QT
The End
32 / 32