PyQt - Widget QComboBox

UMA QComboBoxobjeto apresenta uma lista suspensa de itens para seleção. É necessário um espaço mínimo de tela no formulário para exibir apenas o item atualmente selecionado.

Uma caixa de combinação pode ser configurada para ser editável; ele também pode armazenar objetos pixmap. Os seguintes métodos são comumente usados ​​-

A seguir estão os métodos mais comumente usados ​​de QComboBox.

Sr. Não. Métodos e Descrição
1

addItem()

Adiciona string à coleção

2

addItems()

Adiciona itens em um objeto de lista

3

Clear()

Exclui todos os itens da coleção

4

count()

Recupera o número de itens na coleção

5

currentText()

Recupera o texto do item atualmente selecionado

6

itemText()

Mostra o texto pertencente a um índice específico

7

currentIndex()

Retorna o índice do item selecionado

8

setItemText()

Altera o texto do índice especificado

Sinais QComboBox

Sr. Não. Métodos e Descrição
1

activated()

Quando o usuário escolhe um item

2

currentIndexChanged()

Sempre que o índice atual é alterado pelo usuário ou programaticamente

3

highlighted()

Quando um item da lista é destacado

Exemplo

Vamos ver como alguns recursos do widget QComboBox são implementados no exemplo a seguir.

Os itens são adicionados na coleção individualmente pelo método addItem () ou os itens em um objeto List pelo método addItems ().

self.cb.addItem("C++")
self.cb.addItems(["Java", "C#", "Python"])

O objeto QComboBox emite o sinal currentIndexChanged (). Ele está conectado ao método selectionchange ().

Os itens em uma caixa de combinação são listados usando o método itemText () para cada item. O rótulo pertencente ao item atualmente escolhido é acessado pelo método currentText ().

def selectionchange(self,i):
   print "Items in the list are :"
	
   for count in range(self.cb.count()):
      print self.cb.itemText(count)
   print "Current index",i,"selection changed ",self.cb.currentText()

Todo o código é o seguinte -

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class combodemo(QWidget):
   def __init__(self, parent = None):
      super(combodemo, self).__init__(parent)
      
      layout = QHBoxLayout()
      self.cb = QComboBox()
      self.cb.addItem("C")
      self.cb.addItem("C++")
      self.cb.addItems(["Java", "C#", "Python"])
      self.cb.currentIndexChanged.connect(self.selectionchange)
		
      layout.addWidget(self.cb)
      self.setLayout(layout)
      self.setWindowTitle("combo box demo")

   def selectionchange(self,i):
      print "Items in the list are :"
		
      for count in range(self.cb.count()):
         print self.cb.itemText(count)
      print "Current index",i,"selection changed ",self.cb.currentText()
		
def main():
   app = QApplication(sys.argv)
   ex = combodemo()
   ex.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

O código acima produz a seguinte saída -

Os itens da lista são -

C
C++
Java
C#
Python
Current selection index 4 selection changed Python