Pitão

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 roteiro.

Quando um formulário com uma caixa de seleção é criado usando QCheckBox aula então stateChanged.conectar() função é chamada para aplicar a ação feita pela entrada do usuário. Se o usuário marcou qualquer opção da caixa de seleção, o valor de QtCore.Qt.verificado será verdade. Várias caixas de seleção com uma única seleção, como botão de rádio, podem ser criadas 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 de QCheckBox

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

Nome do Método Objetivo
está checado() Ele retorna um valor booleano. Quando o usuário clica para marcar 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 verdadeiro é definido para tornar a caixa de seleção marcada, e o valor False é definido para tornar 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 () Ele retorna um valor booleano. É usado para verificar o tri-state para saber se a caixa de seleção está habilitada ou não.
setTriState () É usado para habilitar o terceiro estado da caixa de seleção que indica o estado neutro.

Crie um formulário com 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: Criação de uma única caixa de seleção

A maneira de criar uma única caixa de seleção usando QCheckBox classe e lendo o valor de entrada da caixa de seleção fornecida pelo usuário são mostrados neste exemplo. Os módulos necessários são importados no início do script. Um rótulo é usado 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 marcar, o script imprimirá, “Uau! Voce gosta de programar”, Caso contrário, o script irá imprimir,“Ah não!, Você não gosta de programação”.

# Importe os módulos necessários
import sys
de PyQt5 import QtCore, QtWidgets
de PyQt5.QtWidgets import QMainWindow, QCheckBox, QLabel, QVBoxLayout, QDesktopWidget
# Defina a 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 programação?", auto)
Libra.setGeometry (20, 20, 200, 20)
Libra.mover (20, 20)
# Crie uma caixa de seleção com o rótulo
cb = QCheckBox ('Sim', próprio)
cb.stateChanged.conectar (eu mesmo.Check_Answer)
cb.mover (20, 50)
# Defina o layout vertical do Qt
vbox = QVBoxLayout ()
vbox.addWidget (lb)
vbox.addWidget (cb)
# Defina o título e o tamanho da janela
auto.setWindowTitle ('Formulário com caixa de seleção única')
auto.setGeometry (60, 60, 300, 100)
# Exibe a janela no centro da tela
win = self.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().Centro()
vencer.moveCenter (pos)
auto.mover (ganhar.topLeft ())
auto.mostrar()
# Defina a função para verificar a entrada do usuário
def Check_Answer (self, state):
if state == QtCore.Qt.Verificado:
imprimir ("Uau! Voce gosta de programar.")
senão:
print ("Oh não!, Você não gosta de programação.")
# Crie um 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 marcou a caixa de seleção duas vezes e desmarcou a caixa de seleção uma vez.

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

O método de criação de várias caixas de seleção usando QCheckbox classe e leitura de vários valores das várias caixas de seleção são mostrados neste exemplo. Dois rótulos e três caixas de seleção são adicionados à janela. O primeiro rótulo é adicionado 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 ou caixas de seleção selecionadas.

# Importe os módulos necessários
import sys
de PyQt5.Importação de QtWidgets (QWidget, QCheckBox, QApplication, QVBoxLayout, QLabel, QDesktopWidget)
# Defina a 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 (s):", self)
Libra.setGeometry (20, 20, 100, 20)
Libra.mover (20, 20)
# Crie três caixas de seleção
cb1 = QCheckBox ('Bolo de Chocolate', próprio)
cb1.mover (20, 70)
cb1.stateChanged.conectar (lambda: self.Valor_selecionado (cb1))
cb2 = QCheckBox ('Sorvete', próprio)
cb2.mover (20, 90)
cb2.stateChanged.conectar (lambda: self.Valor_selecionado (cb2))
cb3 = QCheckBox ('Pasta', próprio)
cb3.mover (20, 110)
cb3.stateChanged.conectar (lambda: self.Valor_selecionado (cb3))
auto.label = QLabel ('Nada selecionado')
auto.rótulo.mover (20, 150)
# Defina o layout vertical do Qt
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.setGeometry (60, 60, 350, 200)
auto.lblText = "
# Exibe a janela no centro da tela
win = self.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().Centro()
vencer.moveCenter (pos)
auto.mover (ganhar.topLeft ())
auto.mostrar()
# Defina a 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
senão:
auto.lblText + = ',' + val
se btn.isChecked () == Verdadeiro:
se eu.lblText == ":
auto.lblText = btn.texto()
senão:
auto.lblText + = ',' + btn.texto()
senão:
se btn.isChecked () == Verdadeiro:
se eu.lblText == ":
auto.lblText = btn.texto()
senão:
auto.lblText + = ',' + btn.texto()
auto.rótulo.setText ('Você selecionou \ n' + self.lblText)
# Crie um objeto de aplicativo e execute o aplicativo
app = QApplication (sys.argv)
ex = MultipleCheckbox ()
sys.sair (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 marcada ou desmarcada pelo usuário.


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

Conclusão

A maneira de definir uma ou várias caixas de seleção e ler os valores da (s) caixa (s) de seleção selecionada (s) 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.

OpenTTD vs Simutrans
Criar sua própria simulação de transporte pode ser divertido, relaxante e extremamente atraente. É por isso que você precisa ter certeza de experiment...
Tutorial OpenTTD
OpenTTD é um dos jogos de simulação de negócios mais populares que existem. Neste jogo, você precisa criar um maravilhoso negócio de transporte. No en...
SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...