TUTORIAL · PyQt5
Tutorial de PyQt5 - Pulsador
Este tutorial presenta el widget de botones PyQt5.
En esta página
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
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!.
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()
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.