es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  , ,

Answer

  1. Avatar for 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:

    class MyWindow(QtWidgets.QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            self.button = QtWidgets.QPushButton("Presioname", self)
            self.button.move(50, 50)
            self.button.setStyleSheet("""
                QPushButton {
                    background: #F7F7F7;
                    font-size: 22px;
                    border-style: none;
                }
                QPushButton::hover {
                    background: #D3D3D3;
                }
                QPushButton::pressed{
                    background: #C3C3C3;
                    color: purple;
                }
            """)
    
        def keyPressEvent(self, event):
            if event.key() == QtCore.Qt.Key_Space: # Cambiar el estilo cuando se presiona la tecla Espacio
                css = """
                    QPushButton {
                        background: red;
                        color: white;
                    }
                """
                self.button.setStyleSheet(css)
    

    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 utilizando self.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.

Comments are closed.