[qt] ¿Cómo puedo obtener el VALOR seleccionado de un QCombobox?


Answers

puede establecer datos de QVariant para todos los artículos, luego puede obtener el valor cuando lo necesite.

hay un código de ejemplo para esta situación:

ui.comboBoxSheetSize->addItem("128 m", QVariant(128));
ui.comboBoxSheetSize->addItem("256 m", QVariant(256));
ui.comboBoxSheetSize->addItem("512 m", QVariant(512));
ui.comboBoxSheetSize->addItem("1024 m", QVariant(1024));

...

void Page::onComboSheetSizeChanged( int index )
{
 int value = ui.comboBoxSheetSize->itemData(index).toInt();
}

por cierto, creo que he entendido mal tu pregunta. Creo que la forma en que obtienes datos es lo suficientemente inteligente.

Question

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()) ?




La función miembro QComboBox :: currentData se ha agregado desde que se hizo esta pregunta, consulte este commit




Confirmo que la manera más fácil es hacer esto:

uiAnalyseAssets::AnalyseAssets(QWidget *parent)
: QWidget(parent)
{
ui.comboBox->addItem("text1");
ui.comboBox->addItem("text2");

...
}

void mainFunction::yourFunction( int index )
{
 int value = ui.comboBox->currentText();
}



hice esto

QDir path("/home/user/");
QStringList _dirs = path.entryList(QDir::Dirs);
std::cout << "_dirs_count = " << _dirs.count() << std::endl;
ui->cmbbox->addItem(Files);
ui->cmbbox->show();

Verá con esto que la QStringList denominada _dirs está estructurada como una matriz cuyos miembros puede acceder a través de un índice hasta el valor devuelto por _dirs.count ()




Este es mi código de OK en QT 4.7:

 //add combobox list 
    QString val;
   ui->startPage->clear();
    val = "http://www.work4blue.com";
    ui->startPage->addItem(tr("Navigation page"),QVariant::fromValue(val));
    val = "https://www.google.com";
    ui->startPage->addItem("www.google.com",QVariant::fromValue(val));
    val = "www.twitter.com";
    ui->startPage->addItem("www.twitter.com",QVariant::fromValue(val));
    val = "https://www.youtube.com";
    ui->startPage->addItem("www.youtube.com",QVariant::fromValue(val));

   // get current value
    qDebug() << "current value"<< 
       ui->startPage->itemData(ui->startPage->currentIndex()).toString();



Tuve el problema y

QString str = m_UI->myComboBox->currentText();

resuelto esto




Related



Tags

qt qt   qcombobox