Cómo usar la casilla de verificación PYQT?

Cómo usar la casilla de verificación PYQT?

La casilla de verificación se usa para seleccionar cero o más opciones de muchas opciones utilizando la interfaz gráfica de usuario. Se puede crear un formulario con una casilla de verificación utilizando QCHECKBOX clase en un script de pitón o usando el QCHECKBOX widget de Diseñador QT sin escribir ningún guión.

Cuando se crea un formulario con una casilla de verificación usando QCHECKBOX clase, entonces statechanged.conectar() Se llama a la función para aplicar la acción realizada por la entrada del usuario. Si el usuario marcó alguna opción de casilla de verificación, entonces el valor de Qtcore.QT.comprobado será verdad. Se pueden crear múltiples casillas con una sola selección como el botón de radio usando QBUTONGROUP clase.

Cómo se puede crear un formulario con una casilla de verificación escribiendo un script de Python se muestra en este tutorial.

Métodos necesarios de qcheckbox

QCHECKBOX La clase tiene muchas funciones para hacer diferentes tipos de tareas con la casilla de verificación. Algunos métodos más utilizados de esta clase se describen a continuación:

Nombre del método Objetivo
está chequeado() Devuelve un valor booleano. Cuando el usuario hace clic para verificar la casilla de verificación, devuelve verdadero, de lo contrario, devuelve falso.
setChecked () Se usa para cambiar el estado de la casilla de verificación. Se establece el valor verdadero para que la casilla de verificación se verifica, y el valor falso se establece para que la casilla de verificación no se verifica.
texto() Se usa para leer la etiqueta de la casilla de verificación.
setText () Se usa para establecer la etiqueta de la casilla de verificación.
istristate () Devuelve un valor booleano. Se usa para verificar el tri-estado para saber si la casilla de verificación está habilitada o no.
setTristate () Se utiliza para habilitar el tercer estado de la casilla de verificación que indica el estado neutral.

Cree un formulario con casilla de verificación usando la clase Qcheckbox:

Los usos de la casilla de verificación se muestran en esta sección utilizando diferentes tipos de ejemplos. El uso de una sola casilla de verificación, como se muestra en el primer ejemplo, y el uso de múltiples casillas se muestra en el segundo ejemplo.

Ejemplo 1: Creación de una sola casilla de verificación

La forma de crear una sola casilla de verificación usando QCHECKBOX La clase y la lectura del valor de entrada de la casilla de verificación proporcionada por el usuario se muestran en este ejemplo. Los módulos necesarios se importan al comienzo del script. Se utiliza una etiqueta en la casilla de verificación anterior para proporcionar la información para el usuario. Si el usuario hace clic en la casilla de verificación para verificar, entonces el script se imprimirá "Guau! Te gusta la programación", De lo contrario, el script se imprimirá", "Oh, no!, No te gusta la programación".

# Importar módulos necesarios
Sys de importación
de Pyqt5 import qtcore, qtwidgets
de pyqt5.QtWidgets import QMainWindow, QCheckbox, Qlabel, QvboxLayout, QDesktopWidget
# Definir clase para crear el formulario con una sola casilla de verificación
clase Singlecheckbox (QMainWindow):
def __init __ (self):
súper().__en eso__()
# Crea el texto de la etiqueta para el usuario
lb = qlabel ("¿Te gusta la programación??", ser)
lb.SetGeometry (20, 20, 200, 20)
lb.moverse (20, 20)
# Crear una casilla de verificación con la etiqueta
CB = QCHECKBOX ('Sí', Self)
CB.statechanged.conectar (yo.Checar respuesta)
CB.moverse (20, 50)
# Establezca el diseño de QT vertical
vbox = qvboxLayout ()
vbox.addwidget (lb)
vbox.AddWidget (CB)
# Establecer el título y el tamaño de la ventana
ser.setWindowtitle ('Formulario con una sola casilla de verificación')
ser.SetGeometry (60, 60, 300, 100)
# Muestra la ventana en el centro de la pantalla
ganar = yo.FrameGeometry ()
pos = qDesktopWidget ().disponibleGeometry ().centro()
ganar.Movecenter (POS)
ser.mover (ganar.arriba a la izquierda())
ser.espectáculo()
# Definir la función para verificar la entrada del usuario
Def check_answer (self, estado):
Si State == Qtcore.QT.Comprobado:
Imprimir ("Wow! Te gusta la programación.")
demás:
Imprimir ("Oh no!, No te gusta la programación.")
# Crear objeto de aplicación y ejecutar la aplicación
App = QtWidgets.QAPLICACIÓN (SYS.argv)
form = Singlecheckbox ()
aplicación.exec ()

La siguiente ventana con una casilla de verificación aparecerá después de ejecutar el script.


En la siguiente salida, el usuario ha marcado la casilla de verificación dos veces y desactivó la casilla de verificación una vez.

Ejemplo 2: Creación de múltiples casillas de verificación

El método de crear múltiples casillas de verificación utilizando QCHECKBOX clase y lectura de valores múltiples de las múltiples casillas se muestran en este ejemplo. Se agregan dos etiquetas y tres casillas de verificación a la ventana. La primera etiqueta se agrega al comienzo de las casillas de verificación para proporcionar información para el usuario, mientras que la segunda etiqueta se agrega al final de las casillas de verificación para mostrar los valores de la casilla de verificación o las casillas de verificación seleccionadas.

# Importar módulos necesarios
Sys de importación
de pyqt5.QtWidgets Import (QWidget, QCheckbox, Qapplication, QvboxLayout, Qlabel, QDesktopWidget)
# Definir clase para crear el formulario con múltiples casillas
clase MultipLecheckbox (QWidget):
def __init __ (self):
súper().__en eso__()
# Establezca el texto de la etiqueta para el usuario
lb = qlabel ("Seleccione sus alimentos favoritos:", Self)
lb.SetGeometry (20, 20, 100, 20)
lb.moverse (20, 20)
# Crear tres casillas de verificación
CB1 = QCHECKBOX ('Cake de chocolate', yo)
CB1.Move (20, 70)
CB1.statechanged.Connect (Lambda: Self.Selected_Value (CB1))
cb2 = qcheckbox ('helado', yo)
CB2.Move (20, 90)
CB2.statechanged.Connect (Lambda: Self.Selected_Value (CB2))
CB3 = QCHECKBOX ('PASTA', Self)
CB3.Mover (20, 110)
CB3.statechanged.Connect (Lambda: Self.Selected_Value (CB3))
ser.etiqueta = qlabel ('nada seleccionado')
ser.etiqueta.Mover (20, 150)
# Establezca el diseño de QT vertical
vbox = qvboxLayout ()
vbox.addwidget (lb)
vbox.addwidget (CB1)
vbox.addwidget (CB2)
vbox.AddWidget (CB3)
vbox.addwidget (yo.etiqueta)
ser.setLayout (vbox)
ser.setwindowtitle ('formulario con múltiples casillas')
ser.SetGeometry (60, 60, 350, 200)
ser.lbltext = "
# Muestra la ventana en el centro de la pantalla
ganar = yo.FrameGeometry ()
pos = qDesktopWidget ().disponibleGeometry ().centro()
ganar.Movecenter (POS)
ser.mover (ganar.arriba a la izquierda())
ser.espectáculo()
# Definir la función para leer la entrada del usuario
Def Selected_Value (Self, BTN):
Si uno mismo.lbltext != ":
str = yo.lbltext
strarray = str.dividir(' ,')
ser.lbltext = "
Para Val en Strarray:
Si btn.texto() != Val:
Si uno mismo.lbltext == ":
ser.lbltext = val
demás:
ser.lbltext + = ',' + val
Si btn.isChecked () == Verdadero:
Si uno mismo.lbltext == ":
ser.lbltext = btn.texto()
demás:
ser.lbltext + = ',' + btn.texto()
demás:
Si btn.isChecked () == Verdadero:
Si uno mismo.lbltext == ":
ser.lbltext = btn.texto()
demás:
ser.lbltext + = ',' + btn.texto()
ser.etiqueta.setText ('Has seleccionado \ n' + self.lbltext)
# Crear objeto de aplicación y ejecutar la aplicación
APP = QAPPLICATION (SYS.argv)
ex = multipLecheckbox ()
sys.Salir (aplicación.Exec_ ())

La siguiente ventana aparecerá después de ejecutar el script. El valor predeterminado de la segunda etiqueta es "No se selecciona nada"Y el valor de la etiqueta se cambiará cuando el usuario verifique o desactive cualquier casilla de verificación.


En la siguiente salida, el usuario verifica dos casillas de verificación, y el valor de la segunda etiqueta se cambia a "Chocolate, pasta".

Conclusión

La forma de definir una o múltiples casillas de verificación y leer los valores de las casillas de verificación seleccionadas se ha explicado en este tutorial utilizando dos ejemplos simples. Los grupos de casillas de verificación se pueden definir para seleccionar una casilla de verificación particular de un grupo que no se muestra aquí.