Zugriff auf ausgewählte Wert von QcomboBox
Habe ich ein QcomboBox in gui-widget ,und ich Element hinzufügen
for(int i = 1; i < 31; i++)
{
ui->combo->addItem(QString::number(i));
}
und in QComboBox-slot möchte ich, um ausgewählten Wert durch
int index =ui->combo->itemData( ui->combo->currentText());
aber Fehler haben :316: error: no matching function for call to 'QComboBox::itemData(QString)'
wenn ich currentIndex
statt currentText
geben 0 zurück, wenn es zu drucken;
addItem bekommen Qstring ,
void QComboBox::addItem(const QString & text, const QVariant & userData = QVariant())
und ItemData Arbeit mit currentIndex,
Benutze ich insertItem und es hat sae-Fehler ,also wie kann der eingestellte Wert oder text und slected Wert??
- es ist der falsche Typ I bearbeitet
- Warum nicht Sie juse verwenden
int index = ui->combo->currentIndex();
? In dem code, den Sie gepostet haben, die Sie nie legen Sie keine Daten auf das Kombinationsfeld, das ist, warumitemData
0 zurück. Oder, wenn Sie wollen, um den aktuellen text verwenden Sie einfachQString selected_text = ui->combo->currentText();
. - wenn ich diese
index = ui->combo->currentIndex();
wenn ich das Programm bekommen, currentindex, ohne zu wählen ,zum Beispiel wenn ich 1 bis 31, wenn Sie ausgeführt werden, ohne wählen Sie currentindex ist 1 - Ich Daten von diesem Weg
ui->combo->addItem(QString::number(i));
und ich versuche insertItem() , haben Sie 0 zurück,so wie Daten?? - Das ist nicht das gleiche wie
QComboBox::setItemData
. Trotzdem ist das problem nicht da.currentIndex
/currentText
funktionieren sollte. Wo sehen Sie selbst-check für dascurrentIndex
/currentText
? Haben Sie einen Steckplatz auf irgendein signal von Ihrem combo-box? - Ich comboBox in der gui ein und gehen auf slot comboBox,in den slot nach
index= ui->setfreq->itemData(ui->setfreq->currentIndex()).toInt();
ichqDebug() << "current index:"<<index;
Ausdruck 0. - Welcher slot? Und wieder, wie ich bereits erwähnt habe, mit
itemData
wie, dass wird Ihnen keine gültigen Daten. Verwendenindex = ui->setfreq->currentIndex
und sehen, was das gibt. Überprüfen Sie meine Antwort für ein funktionsfähiges Beispiel.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die aktuelle index so:
Oder wenn Sie wollen den text:
In dem code, den Sie geschrieben habe Sie nie alle Daten mit der
Qt::UserRole
auf deine combobox, das ist, warumitemData
0 zurück. Wenn Sie verwenden möchtenitemData
müssen Sie die RolleQt::DisplayRole
:Aber es gibt keinen Grund, dies zu tun, wenn Sie nette Funktionen, dass return der ausgewählte index/text zur Verfügung gestellt von der
QComboBox
Klasse. Hier ist ein funktionierendes Beispiel:currentIndex
liefert den aktuellen index. Und in der Regel Indizes beginnen bei 0. Wenn Sie ein array oder ein Gefäß, das erste Element ist in dem index 0.