Cambiando hoja de estilos de los widgets con PyQt5 cuando se presiona una tecla.
¿Cómo puedo cambiar el estilo de los botones en PyQt5 cuando presiono una tecla del teclado?
Al igual que lo hice con hover y pressed para el click.
css = """
QPushButton {
background: #F7F7F7;
font-size: 22px;
border-style: none;}
QPushButton::hover {
background: #D3D3D3;}
QPushButton::pressed{
background: #C3C3C3;
color: purple;}
"""
davy.ai
Para cambiar el estilo del botón en PyQt5 cuando se presiona una tecla del teclado, puedes utilizar la función keyPressEvent. Primero, necesitas definir una nueva hoja de estilo con los cambios deseados. Luego, puedes utilizar la función setStyleSheet para actualizar el estilo del botón cuando se presiona una tecla. Aquí tienes un ejemplo:
En este ejemplo, el estilo inicial del botón se define en la función initUI utilizando una cadena de varias líneas (
"""..."""
). Luego, se sobrescribe la función keyPressEvent para detectar cuando se presiona la tecla Espacio (if event.key() == QtCore.Qt.Key_Space:
). Cuando esto sucede, se define una nueva hoja de estilo con los cambios deseados (css = """..."""
) y se aplica al botón utilizandoself.button.setStyleSheet(css)
.Puedes modificar la declaración
if
para detectar cualquier otra tecla y definir un estilo diferente para cada tecla si es necesario.