[eaf] Re: QComboBox::findData

  • From: Groph Raven <groph.raven@xxxxxxxxxx>
  • To: eaf@xxxxxxxxxxxxx
  • Date: Fri, 09 May 2008 18:26:37 +0200

Szia!

Látom már megvan a megoldás a problémádra...
Egy kis kiegészítés:
Amikor föltöltöd a QComboBoxot
"addItem(const QString & text, const QVariant & userData = QVariant())"
két értéket is megadhatsz.
Az első a szöveg amit látsz, és amit össze akartál hasonlítani, a másik
pedig egy unio típus QVariant álnéven.
A findText (mint már írták) a beállított elem szövegrésze alapján keres,
míg a findData a beállított QVariant típus alapján.
pl:
//Változók
QVariant v = "barack";
QString s = "barack";
QComboBox comboBox;

//Combobox föltöltése
comboBox.addItem("alma", v);
comboBox.addItem("körte");
comboBox.addItem("barack");

//Kiíratás
qDebug() << comboBox.findData(v);
qDebug() << comboBox.findText(s);

//Eredmény
0
2
--
Groph

Péntek Imre írta:
> Sziasztok!
> 
> Van egy ilyen:
> http://doc.trolltech.com/4.3/qcombobox.html#findData
> 
> Mindezzel együtt az alábbi kód:
> 
> void bead4::on_tableView_clicked(const QModelIndex &index)
>  {
>   qDebug()<<"sor: "<<__LINE__;
>   QString x=model.data(model.index(index.row(),0)).toString();
>   qDebug()<<x;
>   int cx=ui.rendszamInsert2->findData(x);
>   qDebug()<<cx;
>   qDebug()<<ui.rendszamInsert2->itemText(0);
>   ui.rendszamInsert2->setCurrentIndex(cx);
>   ui.rendszamStack->setCurrentIndex(1);
>  }
> 
> Az alábbi kimenetet produkálja:
> 
> sor:  179 
> "AAA-000" 
> -1 
> "AAA-000" 
> 
> A középső -1-et nem tudom mire vélni az őt körülvevő két azonos stringből 
> kifolyólag. A rendszamInsert2 combobox egy modeből van adatokkal feltöltve 
> (QComboBox::setModel). Ti ezt értitek?
> 


Other related posts: