Como usar o Pyqt qcombobox

Como usar o Pyqt qcombobox

A Caixa combo é usado para selecionar um item de uma lista de itens, bem como o botão de rádio. O QCombobox A classe de pyqt é usada para criar listas suspensas usando script python. Ele traz uma lista de itens para o usuário selecionar. Os itens do ComboBox podem ser adicionados, alterados e removidos usando o script. Vários itens podem ser selecionados como o botão de caixa de seleção na lista de itens do ComboBox, e é chamado de ListBox. Este tutorial mostra como usar o QCombobox para criar uma lista suspensa no Python.

Métodos QCombobox

A classe QCombobox contém muitos métodos para executar várias tarefas relacionadas ao ComboBox. Alguns dos métodos mais usados ​​desta classe são descritos abaixo:

Nome do método Propósito
contar() Usado para contar o número total de itens na lista.
adicionar Item() Usado para adicionar um único novo item à lista.
adicionar itens() Usado para adicionar vários itens à lista.
itemText () Usado para ler o texto de um item específico com base em um índice.
setItemText () Usado para definir o texto de um item específico com base em um índice.
CurrentText () Usado para ler o texto do item selecionado.
currentIndex () Usado para ler o índice do item selecionado.
claro() Usado para excluir todos os itens da lista.
destacado() Usado quando um item na lista é destacado.
ativado() Usado quando um item é selecionado pelo usuário.
currentIndexchanged () Usado quando o item da lista mudou.

Uso do ComboBox

As seções a seguir fornecem exemplos que explicam alguns usos diferentes do ComboBox usando o módulo QCombobox da biblioteca Pyqt.

Exemplo 1: Crie uma lista suspensa simples

Este exemplo mostra como criar uma lista suspensa simples usando a classe QCombobox. Aqui, uma lista suspensa de cinco elementos é criada e é anexada a uma função personalizada que imprimirá o valor selecionado da lista. Uma etiqueta é usada na função da lista suspensa para exibir texto estático, e outra etiqueta é usada abaixo da lista suspensa para mostrar o valor selecionado.

# Importar módulos necessários
Importar sistemas
de pyqt5.Qtwidgets importar (qapplication, qwidget, qlabel, qvboxlayout, qcombobox)
# Declare a classe para criar o ComboBox
Classe ComboExample (Qwidget):
def __init __ (self):
super().__iniciar__()
# Defina o rótulo antes do ComboBox
auto.TOPLABEL = QLABEL ('Selecione sua linguagem de programação favorita:', eu)
# Defina o ComboBox com itens
ComboBox = qcombobox (self)
caixa combo.additem ('php')
caixa combo.additem ('python')
caixa combo.additem ('perl')
caixa combo.additem ('Bash')
caixa combo.additem ('java')
# Defina o rótulo após o ComboBox
auto.BottomLabel = Qlabel (", Self)
auto.Bottomlabel.Ajustsize ()
# Defina caixa de layout vartica
v_layout = qvboxlayout ()
v_layout.addWidget (self.toplabel)
v_layout.AddWidget (ComboBox)
v_layout.addWidget (self.Bottomlabel)
# Ligue para o método personalizado se algum item for selecionado
caixa combo.Ativado [STR].Conecte -se (self.ONSELECTED)
# Defina as configurações para a janela
auto.setContentsmargins (20, 20, 20, 20)
auto.setLayout (v_layout)
auto.mover (800, 300)
auto.setWindowTitle ('Uso de Combobox')
# Função personalizada para ler o valor do item selecionado
Defselected (self, txtval):
txtval = "\ nyou selecionou:" + txtval
auto.Bottomlabel.setText (txtval)
# Crie objeto de aplicativo e execute o aplicativo
app = qapplication (sys.argv)
ComboBox = ComboExample ()
caixa combo.mostrar()
aplicativo.exec ()

Se o usuário clicar na lista suspensa após a execução do script, a seguinte lista aparecerá.

Se o usuário selecionar o valor Bash Na lista suspensa, o valor do segundo rótulo será alterado para 'Você selecionou: Bash.'

Exemplo 2: Crie um ComboBox usando a lista

No exemplo anterior, a lista suspensa foi criada com dados estáticos usando o método additem () da classe QCombobox. Este exemplo mostra como adicionar vários itens na lista suspensa definindo uma lista de Python. Primeiro, adicionaremos texto estático ao primeiro item da lista suspensa usando o método additem (). Em seguida, definiremos uma lista de cinco elementos no script e adicionaremos esses elementos à lista suspensa usando o método addItems (). Uma função personalizada está anexada à lista suspensa para exibir a mensagem no rótulo com base na seleção do usuário.

# Importar módulos necessários
Importar sistemas
de pyqt5.Qtwidgets importar *
# Declare a classe para criar o ComboBox usando os dados da lista
Classe ComboExample (QMainWindow):
def __init __ (self):
super().__iniciar__()
# Defina o tittle da janela
auto.SetWindowTitle ("ComboBox com dados da lista")
# Defina a geometria para a janela
auto.Setgeometria (100, 100, 350, 150)
# Crie ComboBox
auto.ComboBox = qcombobox (self)
# Defina a geometria para o ComboBox
auto.caixa combo.Setgeometria (30, 30, 200, 30)
# Defina itens da lista para o ComboBox
src_engines = ["Google.com "," Yahoo.com "," pergunte.com "," Baidu.com "," Yandex.com "]
# Ative a opção editável do ComboBox
auto.caixa combo.Seteditable (verdadeiro)
# Defina o primeiro item para o ComboBox
auto.caixa combo.Additem ("Selecione o mecanismo de pesquisa")
# Adicione vários itens na lista ComboBox usando
auto.caixa combo.additems (src_engines)
# Defina o rótulo na parte inferior do ComboBox para fornecer mensagem para o usuário
auto.msglabel = qlabel (", eu)
# Defina a geometria para o rótulo
auto.Msglabel.Setgeometria (30, 60, 290, 60)
# Ligue para a função personalizada quando qualquer item for selecionado
auto.caixa combo.Ativado [STR].Conecte -se (self.OnClicked)
# Mova a posição da janela
auto.mover (800, 400)
# Exiba a janela
auto.mostrar()
# Defina um método para lidar com o evento de cliques do ComboBox
Def OnClicked (self, val):
# Verifique qualquer item é selecionado pelo usuário ou não
Se Val == "Selecione o mecanismo de pesquisa":
mensagem = "Você não selecionou nada."
outro:
mensagem = "Seu mecanismo de pesquisa favorito é" + val
# Exiba o texto da mensagem no rótulo
auto.Msglabel.setText (mensagem)
# Exiba a mensagem no console
Imprimir (mensagem)
# Crie o objeto de aplicativo
app = qapplication (sys.argv)
# Crie um objeto do objeto de classe
combo = comboExample ()
# Execute o aplicativo
aplicativo.exec ()

Se o usuário clicar na lista suspensa após a execução do script, a seguinte lista aparecerá.

Se o usuário selecionar qualquer item, exceto o primeiro item na lista suspensa, o valor selecionado será mostrado no rótulo combinando com o outro texto.

Se o usuário selecionar o primeiro item na lista suspensa, o valor, 'Você não selecionou nada'será mostrado no rótulo.

Conclusão

Este artigo mostrou como criar e usar listas suspensas em python usando o QCombobox classe usando exemplos simples para ajudá -lo a entender melhor o uso desta classe.