Pitón

Cómo utilizar PyQt QComboBox

Cómo utilizar PyQt QComboBox

A Caja combo se utiliza para seleccionar un elemento de una lista de elementos, al igual que el botón de opción. La QComboBox La clase de PyQt se usa para crear listas desplegables usando el script Python. Muestra una lista de elementos para que el usuario seleccione. Los elementos del ComboBox se pueden agregar, cambiar y eliminar usando el script. Se pueden seleccionar varios elementos como el botón CheckBox de la lista de elementos del ComboBox y luego se llama ListBox. Este tutorial le muestra cómo usar QComboBox para crear una lista desplegable en Python.

Métodos QComboBox

La clase QComboBox contiene muchos métodos para realizar diversas tareas relacionadas con ComboBox. Algunos de los métodos más utilizados de esta clase se describen a continuación:

Nombre del método Propósito
contar() Se utiliza para contar el número total de elementos de la lista.
añadir artículo() Se usa para agregar un solo elemento nuevo a la lista.
addItems () Se usa para agregar varios elementos a la lista.
itemText () Se usa para leer el texto de un elemento en particular basado en un índice.
setItemText () Se utiliza para establecer el texto de un elemento en particular basado en un índice.
currentText () Se utiliza para leer el texto del elemento seleccionado.
currentIndex () Se utiliza para leer el índice del elemento seleccionado.
claro() Se utiliza para eliminar todos los elementos de la lista.
resaltado () Se usa cuando un elemento de la lista está resaltado.
activado() Se utiliza cuando el usuario selecciona un elemento.
currentIndexChanged () Se usa cuando el elemento de la lista ha cambiado.

Uso de ComboBox

Las siguientes secciones proporcionan ejemplos que explican algunos usos diferentes del ComboBox usando el módulo QComboBox de la biblioteca PyQt.

Ejemplo 1: crear una lista desplegable simple

Este ejemplo le muestra cómo crear una lista desplegable simple usando la clase QComboBox. Aquí, se crea una lista desplegable de cinco elementos y se adjunta a una función personalizada que imprimirá el valor seleccionado de la lista. Se usa una etiqueta en la función de la lista desplegable para mostrar texto estático, y se usa otra etiqueta debajo de la lista desplegable para mostrar el valor seleccionado.

# Importar módulos necesarios
importar sys
de PyQt5.Importación de QtWidgets (QApplication, QWidget, QLabel, QVBoxLayout, QComboBox)
# Declare la clase para crear el ComboBox
clase ComboExample (QWidget):
def __init __ (yo):
súper().__en eso__()
# Establecer la etiqueta antes del ComboBox
uno mismo.topLabel = QLabel ('Seleccione su lenguaje de programación favorito:', self)
# Definir el cuadro combinado con elementos
combobox = QComboBox (uno mismo)
caja combo.addItem ('PHP')
caja combo.addItem ('Python')
caja combo.addItem ('Perl')
caja combo.addItem ('Bash')
caja combo.addItem ('Java')
# Establecer la etiqueta después del ComboBox
uno mismo.bottomLabel = QLabel (", self)
uno mismo.bottomLabel.AdjustSize ()
# Definir cuadro de diseño vartical
v_layout = QVBoxLayout ()
v_layout.addWidget (self.topLabel)
v_layout.addWidget (cuadro combinado)
v_layout.addWidget (self.bottomLabel)
# Llame al método personalizado si se selecciona algún elemento
caja combo.activado [str].conectar (uno mismo.onSelected)
# Establecer las configuraciones para la ventana
uno mismo.setContentsMargins (20, 20, 20, 20)
uno mismo.setLayout (v_layout)
uno mismo.mover (800, 300)
uno mismo.setWindowTitle ('Uso de ComboBox')
# Función personalizada para leer el valor del artículo seleccionado
def onSelected (self, txtVal):
txtVal = "\ nHas seleccionado:" + txtVal
uno mismo.bottomLabel.setText (txtVal)
# Crea el objeto de la aplicación y ejecuta la aplicación
app = QApplication (sys.argv)
combobox = ComboExample ()
caja combo.show()
aplicación.ejecutivo ()

Si el usuario hace clic en la lista desplegable después de ejecutar el script, aparecerá la siguiente lista.

Si el usuario selecciona el valor Intento en la lista desplegable, el valor de la segunda etiqueta se cambiará a 'Has seleccionado: Bash.'

Ejemplo 2: crear un cuadro combinado con la lista

En el ejemplo anterior, la lista desplegable se creó con datos estáticos utilizando el método addItem () de la clase QComboBox. Este ejemplo le muestra cómo agregar varios elementos en la lista desplegable definiendo una lista de Python. Primero, agregaremos texto estático al primer elemento de la lista desplegable usando el método addItem (). A continuación, definiremos una lista de cinco elementos en el script y agregaremos estos elementos a la lista desplegable usando el método addItems (). Se adjunta una función personalizada a la lista desplegable para mostrar el mensaje en la etiqueta según la selección del usuario.

# Importar módulos necesarios
importar sys
de PyQt5.Importación de QtWidgets *
# Declare la clase para crear un cuadro combinado usando datos de lista
clase ComboExample (QMainWindow):
def __init __ (yo):
súper().__en eso__()
# Establecer el título de la ventana
uno mismo.setWindowTitle ("Cuadro combinado con datos de lista")
# Establecer la geometría de la ventana
uno mismo.setGeometry (100, 100, 350, 150)
# Crear cuadro combinado
uno mismo.combobox = QComboBox (uno mismo)
# Establecer la geometría para el cuadro combinado
uno mismo.caja combo.setGeometry (30, 30, 200, 30)
# Definir elementos de lista para el cuadro combinado
src_engines = ["google.com "," yahoo.com "," preguntar.com "," baidu.com "," yandex.com "]
# Habilita la opción editable del cuadro combinado
uno mismo.caja combo.setEditable (verdadero)
# Establecer el primer elemento para el cuadro combinado
uno mismo.caja combo.addItem ("Seleccionar motor de búsqueda")
# Agregue varios elementos en el cuadro combinado usando la lista
uno mismo.caja combo.addItems (src_engines)
# Defina la etiqueta en la parte inferior del cuadro combinado para proporcionar un mensaje al usuario
uno mismo.msgLabel = QLabel (", self)
# Establecer la geometría de la etiqueta
uno mismo.msgLabel.setGeometry (30, 60, 290, 60)
# Llame a la función personalizada cuando se seleccione cualquier elemento
uno mismo.caja combo.activado [str].conectar (uno mismo.onClicked)
# Mover la posición de la ventana
uno mismo.mover (800, 400)
# Mostrar la ventana
uno mismo.show()
# Defina un método para manejar el evento de clic del Combobox
def onClicked (self, val):
# Verifique que cualquier elemento esté seleccionado por el usuario o no
if val == "Seleccionar motor de búsqueda":
message = "No has seleccionado nada."
demás:
message = "Tu motor de búsqueda favorito es" + val
# Mostrar el texto del mensaje en la etiqueta
uno mismo.msgLabel.setText (mensaje)
# Muestra el mensaje en la consola
imprimir (mensaje)
# Crea el objeto de la aplicación
app = QApplication (sys.argv)
# Crea un objeto de la clase objeto
combo = ComboExample ()
# Ejecuta la aplicación
aplicación.ejecutivo ()

Si el usuario hace clic en la lista desplegable después de ejecutar el script, aparecerá la siguiente lista.

Si el usuario selecciona cualquier elemento excepto el primer elemento de la lista desplegable, el valor seleccionado se mostrará en la etiqueta combinándolo con el otro texto.

Si el usuario selecciona el primer elemento de la lista desplegable, entonces el valor, 'No has seleccionado nada'se mostrará en la etiqueta.

Conclusión

Este artículo le mostró cómo crear y usar listas desplegables en Python usando el QComboBox clase usando ejemplos simples para ayudarlo a comprender mejor el uso de esta clase.

Trackpad en pantalla y puntero del mouse AppyMouse para tabletas Windows
Los usuarios de tabletas a menudo pierden el puntero del mouse, especialmente cuando son habituales para usar las computadoras portátiles. Los teléfon...
El botón central del mouse no funciona en Windows 10
La botón central del ratón le ayuda a desplazarse por páginas web largas y pantallas con una gran cantidad de datos. Si eso se detiene, bueno, termina...
Cómo cambiar los botones izquierdo y derecho del mouse en una PC con Windows 10
Es una norma que todos los dispositivos de mouse de computadora estén diseñados ergonómicamente para usuarios diestros. Pero hay dispositivos de mouse...