Como usar a caixa de seleção PYQT?

Como usar a caixa de seleção PYQT?

A caixa de seleção é usada para selecionar zero ou mais opções de muitas opções usando a interface gráfica do usuário. Um formulário com uma caixa de seleção pode ser criado usando QcheckBox classe em um script python ou usando o QcheckBox widget de QT Designer sem escrever nenhum script.

Quando um formulário com uma caixa de seleção é criado usando QcheckBox classe, então Statechanged.conectar() A função é chamada para aplicar a ação realizada pela entrada do usuário. Se o usuário verificou qualquer opção de caixa de seleção, o valor de Qtcore.Qt.verificado será verdade. Várias caixas de seleção com uma única seleção, como o botão de rádio pode ser criado usando QBUTTONGROUP aula.

Como um formulário com uma caixa de seleção pode ser criado escrevendo um script python é mostrado neste tutorial.

Métodos necessários do QcheckBox

QcheckBox A classe tem muitas funções para realizar diferentes tipos de tarefas com a caixa de seleção. Alguns métodos mais usados ​​desta classe são descritos abaixo:

Nome do método Propósito
está checado() Retorna um valor booleano. Quando o usuário clica para verificar a caixa de seleção, ele retorna true, caso contrário, retorna false.
SetChecked () É usado para alterar o estado da caixa de seleção. O valor true é definido para fazer a caixa de seleção verificada e o valor falso é definido para fazer a caixa de seleção desmarcada.
texto() É usado para ler o rótulo da caixa de seleção.
setText () É usado para definir o rótulo da caixa de seleção.
istristate () Retorna um valor booleano. É usado para verificar o tri-estado para saber se a caixa de seleção está ativada ou não.
setTristate () É usado para ativar o terceiro estado da caixa de seleção que indica o estado neutro.

Crie um formulário com a caixa de seleção usando a classe QcheckBox:

Os usos da caixa de seleção são mostrados nesta seção usando diferentes tipos de exemplos. O uso de uma única caixa de seleção, conforme mostrado no primeiro exemplo, e o uso de várias caixas de seleção são mostrados no segundo exemplo.

Exemplo 1: Criando uma única caixa de seleção

A maneira de criar uma única caixa de seleção usando QcheckBox classe e leitura do valor de entrada da caixa de seleção fornecida pelo usuário são mostradas neste exemplo. Os módulos necessários são importados no início do script. Uma etiqueta é usada na caixa de seleção acima para fornecer as informações para o usuário. Se o usuário clicar na caixa de seleção para verificar, o script imprimirá, “Uau! Você gosta de programar", Caso contrário, o script irá imprimir,"Oh não!, Você não gosta de programação”.

# Importar módulos necessários
Importar sistemas
do pyqt5 importar qtcore, qtwidgets
de pyqt5.Qtwidgets importar qmainwindow, qcheckbox, qlabel, qvboxlayout, qdesktopwidget
# Defina classe para criar o formulário com uma única caixa de seleção
Classe SingleCheckBox (QMainWindow):
def __init __ (self):
super().__iniciar__()
# Crie o texto do rótulo para o usuário
lb = qlabel ("Você gosta de programar?", auto)
Libra.Setgeometria (20, 20, 200, 20)
Libra.mover (20, 20)
# Crie uma caixa de seleção com o rótulo
CB = QCHECKBOX ('Sim', self)
cb.Statechanged.Conecte -se (self.Check_answer)
cb.mover (20, 50)
# Defina o layout qt vertical
vBox = qvboxLayout ()
vBox.addWidget (lb)
vBox.AddWidget (CB)
# Defina o título e o tamanho da janela
auto.setWindowTitle ('formulário com uma única caixa de seleção')
auto.Setgeometria (60, 60, 300, 100)
# Exiba a janela no centro da tela
win = self.FrameGeometria ()
POS = QDESKTOPWIDGET ().DisponívelGeometria ().Centro()
ganhar.MoveCenter (POS)
auto.mover (Win.topleft ())
auto.mostrar()
# Defina a função para verificar a entrada do usuário
def check_answer (self, estado):
Se estado == qtcore.Qt.Verificado:
imprimir ("uau! Você gosta de programar.")
outro:
Imprima ("Oh não!, Você não gosta de programação.")
# Crie objeto de aplicativo e execute o aplicativo
app = QtWidgets.Qapplication (sys.argv)
Form = SingleCheckBox ()
aplicativo.exec ()

A seguinte janela com uma caixa de seleção aparecerá após a execução do script.


Na saída a seguir, o usuário verificou a caixa de seleção duas vezes e desmarcou a caixa de seleção uma vez.

Exemplo 2: Criando várias caixas de seleção

O método de criar várias caixas de seleção usando QcheckBox classe e leitura de vários valores das múltiplas caixas de seleção são mostrados neste exemplo. Dois rótulos e três caixas de seleção são adicionados à janela. A primeira etiqueta é adicionada no início das caixas de seleção para fornecer informações para o usuário, enquanto o segundo rótulo é adicionado no final das caixas de seleção para exibir os valores da caixa de seleção selecionada ou das caixas de seleção.

# Importar módulos necessários
Importar sistemas
de pyqt5.Qtwidgets import (qwidget, qcheckbox, qapplication, qvboxlayout, qlabel, qdesktopwidget)
# Definir classe para criar o formulário com várias caixas de seleção
Classe multiplecheckbox (qwidget):
def __init __ (self):
super().__iniciar__()
# Defina o texto do rótulo para o usuário
lb = qlabel ("Selecione sua (s) comida (s) favorita:", eu)
Libra.SetGeometria (20, 20, 100, 20)
Libra.mover (20, 20)
# Crie três caixas de seleção
CB1 = QCHECKBOX ('Bolo de chocolate', self)
CB1.mover (20, 70)
CB1.Statechanged.Connect (Lambda: self.Selected_value (CB1))
CB2 = QCHECKBOX ('sorvete', eu)
CB2.mover (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))
auto.Label = Qlabel ('Nada selecionado')
auto.rótulo.mover (20, 150)
# Defina o layout qt vertical
vBox = qvboxLayout ()
vBox.addWidget (lb)
vBox.AddWidget (CB1)
vBox.AddWidget (CB2)
vBox.AddWidget (CB3)
vBox.addWidget (self.rótulo)
auto.setLayout (vBox)
auto.setWindowTitle ('formulário com várias caixas de seleção')
auto.Setgeometria (60, 60, 350, 200)
auto.lblText = "
# Exiba a janela no centro da tela
win = self.FrameGeometria ()
POS = QDESKTOPWIDGET ().DisponívelGeometria ().Centro()
ganhar.MoveCenter (POS)
auto.mover (Win.topleft ())
auto.mostrar()
# Defina função para ler a entrada do usuário
def Selected_value (self, btn):
se eu.lblText != ":
str = self.lblText
strarray = str.dividir(' ,')
auto.lblText = "
Para Val em Strarray:
se btn.texto() != val:
se eu.lblText == ":
auto.lblText = val
outro:
auto.lbltext + = ',' + val
se btn.isCHecked () == true:
se eu.lblText == ":
auto.lblText = btn.texto()
outro:
auto.lbltext + = ',' + btn.texto()
outro:
se btn.isCHecked () == true:
se eu.lblText == ":
auto.lblText = btn.texto()
outro:
auto.lbltext + = ',' + btn.texto()
auto.rótulo.setText ('você selecionou \ n' + self.lblText)
# Crie objeto de aplicativo e execute o aplicativo
app = qapplication (sys.argv)
ex = multiLecheckbox ()
sys.saída (app.exec_ ())

A seguinte janela aparecerá após a execução do script. O valor padrão do segundo rótulo é “Nada é selecionado”E o valor do rótulo será alterado quando qualquer caixa de seleção for verificada ou desmarcada pelo usuário.


Na saída a seguir, duas caixas de seleção são verificadas pelo usuário e o valor do segundo rótulo é alterado para “Chocolate, massas”.

Conclusão

A maneira de definir uma ou múltiplas caixas de seleção e ler os valores das caixas de seleção selecionadas foi explicada neste tutorial usando dois exemplos simples. Os grupos de caixas de seleção podem ser definidos para selecionar uma caixa de seleção específica de um grupo que não é mostrado aqui.