En PyQt5, un botón de alternar es básicamente el botón pulsador en un estado especial. El botón pulsador es un botón cuando lo presionamos para hacer alguna tarea y volver al estado normal. Es similar a la tecla del teclado cuando lo presionamos, hace algo y cuando lo soltamos, vuelve a su forma original.
ToggleButton es un tipo de botón pulsador, pero tiene dos estados, es decir, encendido y apagado cuando lo presionamos, no vuelve al estado original. El botón de palanca es similar a un interruptor de electricidad cuando lo presionamos, permanece encendido y cuando lo apagamos permanece en la posición de apagado.
Para crear un botón de alternar tenemos que hacer lo siguiente:
- Crea un pulsador.
- Establezca verificable en Verdadero, es decir, si se presiona, se verifica y si se presiona nuevamente, se desmarca de manera similar a la casilla de verificación.
- Establezca el método de llamada que recibe la llamada cuando se presiona el botón.
- En el método de llamada, verifique si el botón está marcado o no.
- Si el botón está marcado, cambie su color; de lo contrario, establezca el color predeterminado.
A continuación se muestra la implementación.
# importing the required libraries from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * import sys class Window(QMainWindow): def __init__(self): super().__init__() # set the title self.setWindowTitle("Python") # setting geometry self.setGeometry(100, 100, 600, 400) # creating a push button self.button = QPushButton("Toggle", self) # setting geometry of button self.button.setGeometry(200, 150, 100, 40) # setting checkable to true self.button.setCheckable(True) # setting calling method by button self.button.clicked.connect(self.changeColor) # setting default color of button to light-grey self.button.setStyleSheet("background-color : lightgrey") # show all the widgets self.update() self.show() # method called by button def changeColor(self): # if button is checked if self.button.isChecked(): # setting background color to light-blue self.button.setStyleSheet("background-color : lightblue") # if it is unchecked else: # set background color back to light-grey self.button.setStyleSheet("background-color : lightgrey") # create pyqt5 app App = QApplication(sys.argv) # create the instance of our Window window = Window() # start the app sys.exit(App.exec())
Producción :
Publicación traducida automáticamente
Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA