Saltar a contenido

PyQt 5

Creamos un entorno virtual, lo activamos e instalamos

cd ~
mkdir pyqt5
cd pyqt5
virtualenv -p python3 env
source env/bin/activate
env/bin/pip3 install pyqt5

Qt Designer

Es una herramienta complementaria que no viene instalada por defecto, debemos instalarla por separado

Instalación de Qt Designer en Linux

env/bin/pip3 install PyQt5-tools

Dentro de la carpeta /env/lib/python3.6/site-packages/qt5_applications/Qt/bin tendremos el ejecutable designer

Componentes de la interfaz

Los elementos de la interfaz se llaman widgets y heredan todos de la clase QWidget, algunos de los mas usados

  • QPushButton: setText(), setIcon(), SetEnabled(), clicked(),etc.
  • QRadioButton: isChecked(), setChecked(),setText(), toggled()
  • QCheckBox:
  • QListWidget: addItem(), currentItem(), sortItems(), etc
  • QComboBox:
  • QLineEdit:
  • QTextEdit:
  • QLabel:

QApplication: Es el punto de entrada a toda app Qt, administra toda la GUI, configuraciones... es lo que se ejecuta realmente. QMainWindow: Es la ventana principal y donde se van a colocar el resto de widgets. Puede no existir en interfaces que solo tengan cuadros de dialogo.

Al crear interfaces con Qt Designer se genera un archivo con extension .ui que es un XML.

Este archivo luego lo cargaremos en nuestro código Python para agregarle la lógica.

Cargando el interfaz y agregando eventos

from PyQt5 import QtWidgets, uic

class MainWindow(QtWidgets.QMainWindow):

    def __init__(self):
        super(MainWindow,self).__init__()
        self.ui = uic.loadUi('./project/MainWindow.ui',self)
        self.ui.pushButton.clicked.connect(self.btnClicked) # connecting the clicked signal with btnClicked slot

    def btnClicked(self):
        self.ui.plainTextEdit.setText("Button Clicked")


app = QtWidgets.QApplication([])
miventana = MainWindow()
miventana.show()
app.exec_()

Última actualización: 2020-12-26