Seite 1 von 1

lineEdits durchlaufen

Verfasst: 18. Mai 2009 09:15
von STS301
hi

ich habe 5 lineEdits (inputEdit[1-5]).

Wie kann ich mit einer for-Schleife die lineEdits 1 bis 5 abfragen

Code: Alles auswählen

for (int i =1 ; i < 5; i++)
{
  if (ui->inputEdit[i].isEmpty)
  {
    ...
  }
}
so sollte das ungefähr aussehen.

Verfasst: 18. Mai 2009 09:24
von franzf
Wenn ich dich richtig verstehe, ist der Name der Variablen im ui lineEdit1. Dann hast du in C/C++ keine Möglichkeit, so zuzugreifen, wie du dir das vorstellst.
Was du machen kannst, ist über alle children() nach dem objectName() zu fragen. Da kannst du das dann so vergleichen. Schau dir aber vorher das ui_*.h an, dass du weißt welches Object du nach den children() fragen kannst.

Verfasst: 18. Mai 2009 09:31
von AuE

Code: Alles auswählen

QList<QLineEdit *> stackedWidgetLEs = ui.stackedWidget->findChildren<QLineEdit *>(); 

Verfasst: 18. Mai 2009 09:40
von STS301
franzf hat geschrieben:Wenn ich dich richtig verstehe, ist der Name der Variablen im ui lineEdit1. Dann hast du in C/C++ keine Möglichkeit, so zuzugreifen, wie du dir das vorstellst.
Was du machen kannst, ist über alle children() nach dem objectName() zu fragen. Da kannst du das dann so vergleichen. Schau dir aber vorher das ui_*.h an, dass du weißt welches Object du nach den children() fragen kannst.
@AuE: danke für die Hilfe, aber ich bin so weit mit C++ noch nicht, und der Code sagt mir nichts, sry.

@franzf: wie mache ich das? frage ich dann so ab "if (children(ui->lineEdit)" ?

Verfasst: 18. Mai 2009 09:43
von AuE
also wenn den code noch net verstehst....glaube das wird nen hartes brot für dich! unbedingt c++ kenntnisse nachholen!!!

Verfasst: 18. Mai 2009 09:50
von STS301
naja, verstehen schon, aber ich hänge bei den beiden "<QLineEdit *> "

Verfasst: 18. Mai 2009 10:03
von franzf
STS301 hat geschrieben:naja, verstehen schon, aber ich hänge bei den beiden "<QLineEdit *> "
Stichwörter:
"Template" und "gutes C++-Buch"

Verfasst: 18. Mai 2009 10:13
von AuE
wie arbeitest denn mit std::vectoren ??

Verfasst: 18. Mai 2009 16:13
von STS301
sagen wir so, ich verstehe den ganzen Sinn dahinter nicht

Code: Alles auswählen

QList<QLineEdit *> editLists = ui.editLists->findChildren<QLineEdit *>(); 
Es wird eine QList mit dem Namen editLists, was macht das <QLineEdit *> da drinnen, verweist es auf alle QLineEdits in dem Programm?

danach, bei ui. findet er schon gar kein editLines, ich kann es zwar so hinschreiben: "editLines", da hat er aber kein findChildren mehr.
Den Sinn des zweiten <QLineEdit *> habe ich auch noch nicht durchschaut.

Ich habe zwar ein Qt C++ Buch vor mir, werde daraus aber nicht besonders schlau.

Verfasst: 18. Mai 2009 16:20
von pfid
Lies dir das hier durch:

http://de.wikipedia.org/wiki/Template_(Programmierung)

Danach liest du dir hier die Detailed Description durch:

http://doc.trolltech.com/4.5/qlist.html

und zum Schluss noch das hier:

http://doc.trolltech.com/4.5/qobject.html#findChildren

Dann sollte es klar werden. Wenn nicht, meld dich nochmal.