Tutorial de PyQt5 - Pulsador

  1. Botón PyQt5 - QPushButton
  2. Estilo del conjunto de widgets de etiquetas PyQt5 `QLabel
  3. Evento de clic en la etiqueta PyQt5 QLabel Label

El widget QPushButton es un botón de comando en PyQt5. El usuario lo pulsa para ordenar al PC que realice alguna acción específica, como Apply, Cancel y Save.

Botón PyQt5 - QPushButton

QPushButton.py
import sys
from PyQt5 import QtWidgets

def basicWindow():
    app = QtWidgets.QApplication(sys.argv)
    windowExample = QtWidgets.QWidget()
    
    buttonA = QtWidgets.QPushButton(windowExample)
    labelA = QtWidgets.QLabel(windowExample)
    
    buttonA.setText('Click!')
    labelA.setText('Show Label')
    
    windowExample.setWindowTitle('Push Button Example')
    
    buttonA.move(100, 50)
    labelA.move(110, 100)
    
    windowExample.setGeometry(100, 100, 300, 200)
    windowExample.show()
    sys.exit(app.exec_())

basicWindow()

Dónde,

buttonA = QtWidgets.QPushButton(windowExample)

El buttonA es el QPushButton de QtWidgets y debería ser añadido a la ventana windowExample igual que las etiquetas introducidas en los últimos capítulos.

buttonA.setText('Click!')

Establece que el texto de buttonA es Click!.

Botón PyQt5

En realidad no va a hacer nada.

Estilo del conjunto de widgets de etiquetas PyQt5 `QLabel

El estilo del widget QLabel de PyQt5, como el color de fondo, la familia de fuentes y el tamaño de las mismas, se puede establecer con el método setStyleSheet. Funciona como una hoja de estilo en CSS.

buttonA.setStyleSheet("background-color: red;font-size:18px;font-family:Times New Roman;");

Establece buttonA con los siguientes estilos,

Estilo Valor
background-color red
font-size 18px
font-family Times New Roman

Es conveniente establecer los estilos en PyQt5 porque es similar a CSS.

import sys
from PyQt5 import QtWidgets

def basicWindow():
    app = QtWidgets.QApplication(sys.argv)
    windowExample = QtWidgets.QWidget()
    
    buttonA = QtWidgets.QPushButton(windowExample)
    labelA = QtWidgets.QLabel(windowExample)

    buttonA.setStyleSheet("background-color: red;font-size:18px;font-family:Times New Roman;");
    
    buttonA.setText('Click!')
    labelA.setText('Show Label')
    
    windowExample.setWindowTitle('Push Button Example')
    
    buttonA.move(100, 50)
    labelA.move(110, 100)
    
    windowExample.setGeometry(100, 100, 300, 200)
    windowExample.show()
    sys.exit(app.exec_())

basicWindow()

Ejemplo de Push Button_setStyleSheet de PyQt5

Evento de clic en la etiqueta PyQt5 QLabel Label

El botón click event está conectado a alguna función específica con el método QLabel.clicked.connect(func).

import sys
from PyQt5 import QtWidgets
   

class Test(QtWidgets.QMainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)

        self.buttonA = QtWidgets.QPushButton('Click!', self)
        self.buttonA.clicked.connect(self.clickCallback)
        self.buttonA.move(100, 50)

        self.labelA = QtWidgets.QLabel(self)
        self.labelA.move(110, 100)

        self.setGeometry(100, 100, 300, 200)

    def clickCallback(self):
        self.labelA.setText("Button is clicked")

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    test = Test()
    test.show()
    sys.exit( app.exec_() )

Cuando se hace clic en el QPushButton buttonA, se activa la función clickCallback para establecer el texto de la etiqueta como Button is clicked.

comments powered by Disqus