qt como - ¿Cómo puedo obtener el VALOR seleccionado de un QCombobox?




6 Answers

Parece que necesita hacer combobox->itemData(combobox->currentIndex()) si desea obtener los datos actuales de QComboBox.

Si está utilizando su propia clase derivada de QComboBox, puede agregar una función currentData() .

c# una

En Qt, puedo obtener el texto seleccionado de un QComboBox usando el método combobox->currentText() . ¿Cómo puedo obtener el valor seleccionado ?

currentData() http://qt.nokia.com/doc/4.6/qcombobox.html para obtener ayuda, pero no pude encontrar un método currentData() que esperaba encontrar. Solo pude encontrar combobox->currentIndex()

¿Existe alguna forma más inteligente de hacerlo que no sea combobox->itemData(combobox->currentIndex()) ?




Este puede obtener el texto del índice actual:

QString cb = cbChoice ->currentText();



Tuve el mismo problema

Lo he resuelto por

value = self.comboBox.currentText()
print value



Estoy sorprendido de que no haya una señal activada y tenga el mismo problema. Lo resolví haciendo una subclase de QComboBox. Creo que es mejor evitar tener que acceder directamente al objeto y llamar a sus funciones porque eso significa un acoplamiento más ajustado y va en contra de la filosofía de Qt. Así que aquí está la clase que hice que funciona para mí.

class SmartComboBox : public QComboBox {

    Q_OBJECT

private slots:

    void triggerVariantActivated(int index);

public:

    SmartComboBox(QWidget *parent);

signals:

    void activated(const QVariant &);

};

Y la implementación

void SmartComboBox::triggerVariantActivated(int index)
{
    activated(itemData(index));
}

SmartComboBox::SmartComboBox(QWidget *parent)
:QComboBox(parent)
{
    connect(this, SIGNAL(activated(int)), this, SLOT(triggerVariantActivated(int)));
}



si está desarrollando complementos QGIS, simplemente

self.dlg.cbo_load_net.currentIndex()



Sé que llegué muy tarde, pero para aquellos que todavía tienen ese problema, se puede resolver fácilmente. Yo uso Qt 5.3 y funciona bien. No es necesario crear una función o todo eso.

int valueComboBox;
valueComboBox = comboBox->currentIndex();

y funciona ! Espero eso ayude !




Related

qt qcombobox

Tags

qt   qcombobox