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