gelöst: Signals und Slots?? Hilfe zu Connect

Alles rund um die Programmierung mit Qt
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

Beitrag von jerry42 »

korrekt. =)

wenn du das umgehen willst, musst du entweder zu Variante 1 greifen, oder Variante 2 entsprechend erweitern.
Aber simpler ist sicherlich Variante 1.
nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Beitrag von nici »

hi,
in Variante 1 im letzten Abschnitt steht

Code: Alles auswählen

if(allesOK) {
qDebug() << "Alles OK";
} else {
qDebug() << "Fehler";
//Dann könntest du hier noch prüfen welche nicht ok waren
} 
Da Steht ja, dass ich noch überprüfen kann welche nicht ok waren. Muss ich das im else-Zweig machen.

Muss ich dann schreiben

Code: Alles auswählen

if (ok1!=false){
qDebug()<<"Falsche eingabe";
...
if(ok2 ....
Hmm mir fällt nichts ein ^^
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

Beitrag von jerry42 »

ja genau.

wenn du es noch umkehrst, dann passt es. also nicht

Code: Alles auswählen

if(ok1!=false) qDebug() << "Nr 1 falsch";
sondern

Code: Alles auswählen

if(ok1==false) qDebug() << "Nr 1 falsch";
[/code]
nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Beitrag von nici »

hallo,

also ich hab da jetzt stehen

Code: Alles auswählen

bool allesOK=true;
if(ok1==false){
	allesOK=false;
}
if(ok2==false){
	allesOK=false;
}
if(ok3==false){
	allesOK=false;
}
if(allesOK){
	qDebug()<<"AllesOK";
}else {
	qDebug()<<"Fehler";
}
if(ok1==false){
	showConvError(input_1->text(),QString("1"));
}
if(ok2==false){
	showConvError(input_2->text(),QString("2"));
}
if(ok3==false){
	showConvError(input_3->text(),QString("3"));
}
und das ist mir irgendwie zu lang, geht das nicht kürzer???

lg

nici
Hmm mir fällt nichts ein ^^
nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Beitrag von nici »

hab die ersten drei if-Anweisungen in eine gepackt ^^
Hmm mir fällt nichts ein ^^
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

Beitrag von jerry42 »

natürlich geht es kürzer, aber das ist sagen wir mal eine verständliche Variante.

Die Überprüfung welche jetzt letztlich falsch war macht übrigens innerhalb des else statements um einiges mehr Sinn. Findest du nicht auch? Denn dann wird das nur überprüft wenn auch wirklich ein Fehler vorliegt.

Letztilch solltest du das ja durch selber rumprobieren lösen. Denn so wirklich schwer ist das nicht. Solang du die Syntax kennst, ist das nur einfache Logik.

den ersten Teil könntest du z.B. so zusammenfassen

Code: Alles auswählen

if(ok1==false||ok2==false||ok3==false) allesOK = false;
oder so:

Code: Alles auswählen

allesOK = false;
if(ok1&&ok2&&ok3) allesOK = true;
gruß jerry42
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Code: Alles auswählen

void MainWindow::calc() { 
  int summe=0;
  bool ok=false; 

  summe+=input_1->text().toInt(&ok);
  if (!ok) {
    showConvError(input_1->text(), QString("1"));
    qDebug() << "Feld 1 falsch";
    return;
  }

  summe+=input_2->text().toInt(&ok);
  if (!ok) {
    showConvError(input_2->text(), QString("2"));
    qDebug() << "Feld 2 falsch";
    return;
  } 

  summe+=input_3->text().toInt(&ok);
  if (!ok) {
    showConvError(input_3->text(), QString("3"));
    qDebug() << "Feld 3 falsch";
    return;
  }

  qDebug()<<"alles Ok"; 
  output->setText(QString::number(summe));  
} 

nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Beitrag von nici »

hmm das sieht sehr gut aus. Leider kann ich das jetzt nicht anwenden, da ich daheim bin und kein qt bei mir drauf habe. Werde es morgen früh bei der Arbeit ausprobieren, dankkkee.

lg

nici
Hmm mir fällt nichts ein ^^
Antworten