Seite 1 von 2
Array?? Liste?? übergeben??
Verfasst: 12. November 2008 13:15
von nici
hallo,
mit dem qt-designer habe ich ein widget in dem 40 DoubleSpinBoxes sind. Wenn der Benutzer die 40 Felder ausgefüllt hat, sollen die Werte an eine Funktion übergeben werden, welches mir dann ein Bild zurück liefert.
Hmm leider weiss ich nicht wie ich das machen soll. Kann mir da jmd einen Denkanstoß geben, danke.
lg
nici
Verfasst: 12. November 2008 13:37
von RHBaum
Naja, um spezielle Vorschlaege machen zu koennen, fehlt uns auch erst mal bissi Info ...
Was ist genau das Problem ?
Das du nen "Zwischencontainer" brauchst, weisst ja (anhand der Überschrift zum Thread).
- wie die daten von den Spinboxen in den Conatiner bekommst ?
- wie den Container an ne Function uebergibst ?
- welcher container geeignet ist ?
Ciao ...
Verfasst: 12. November 2008 13:41
von nici
hi,
also ich möchte wissen was die beste Lösung ist um die Werte die in die SpinBoxes eingefügt wurden, an eine Funktion weitergeben.
- muss ich ein Array anlegen
- muss ich jeden Werte einzeln übergeben
wie mache ich das.
lg
nici
Verfasst: 12. November 2008 16:15
von Ginsengelf
Moin, du solltest die Werte irgendwie gruppieren (QVector, QList, je nach Geschmack [und einigen anderen Kriterien, siehe Qt Doku]), und dann diese Container an die Funktion übergeben.
Auf gar keinen Fall eine Funktion mit 40 Paramtern schreiben, da weißt du spätestens beim zehnten nicht mehr, ob es jetzt der zehnte oder doch schon der elfte ist...
Ginsengelf
Verfasst: 12. November 2008 16:17
von nici
hallo,
also an QVektor hab ich auch schon gedacht, weiss aber absolut nicht wie das damit geht. Hättest du vlt ein kleines Beispiel für mich. Und was ist ein Container, wie erstelle ich sowas???
lg
nici
Verfasst: 12. November 2008 17:23
von upsala
Auch wenn wir hier bei C++-Grundlagen sind. Hast du dir schon mal überlegt ein Buch über C++ zuzulegen?
Verfasst: 12. November 2008 18:43
von solarix
"Lesen" wäre generell eine ganz gute Idee...
also an QVektor hab ich auch schon gedacht, weiss aber absolut nicht wie das damit geht. Hättest du vlt ein kleines Beispiel für mich.
http://doc.trolltech.com/4.4/qvector.html#details
Und was ist ein Container, wie erstelle ich sowas???
http://doc.trolltech.com/4.4/containers ... er-classes
Verfasst: 13. November 2008 09:09
von nici
ja klar hab ich mir ein Buch zugelegt, leider vergesse ich es immer wieder mit zur Arbeit zu nehmen.
Und was ist mit QMap, wäre das nicht schneller??
Verfasst: 13. November 2008 11:32
von nici
hallo,
ich hab mal was geschrieben, könntet ihr mal einen Blick riskieren? danke.
Code: Alles auswählen
#include <QtGui>
#include "TabDrei.h"
TabDrei::TabDrei(QWidget *parent)
:QWidget(parent)
{
setupUi(this);
}
float z1=input_1->value(), z2=input_2->value(), z3=input_3->value(), z4=input_4->value(), z5=input_5->value(), z6=input_5->value(), z7=input_7->value(), z8=input_8->value(), z9=input_9->value(), z10=input_10->value();
float z11=input_11->value(), z12=input_12->value(), z13=input_13->value(), z14=input_14->value(), z15=input_15->value(), z16=input_16->value(), z17=input_17->value(), z18=input_18->value(), z19=input_19->value(), z20=input_20->value();
float z21=input_21->value(), z22=input_22->value(), z23=input_23->value(), z24=input_24->value(), z25=input_25->value(), z26=input_26->value(), z27=input_27->value(), z28=input_28->value(), z29=input_29->value(), z30=input_30->value();
float z31=input_31->value(), z32=input_32->value(), z33=input_33->value(), z34=input_34->value(), z35=input_35->value(), z36=input_36->value(), z37=input_37->value(), z38=input_38->value(), z39=input_39->value(), z40=input_40->value();
void TabDrei::check(float z1, z2, z3, z4, z5, z6, z7, z8, z9, z10 ...){
//float ok[40]=false;
////bool ok1=false, ok2=false, ok3=false, ok4=false, ok5=false, ok6=false, ok7=false, ok8=false, ok9=false, ok10=false;
//for(i=0; i=40; i++){
//qDebug() << ok[i];
//}
//}
void TabDrei::showConvError(const QString & value, const QString & inputNumber ){
QMessageBox::warning(this, "Warnung", "Der von Ihnen eingegebene Wert \"" + value + "\" im Feld \"" + inputNumber + "\" ist ungueltig.");
}
hab ich das mit value() und so richtig gemacht, werden so die Werte der Felder übergeben??
lg
nici
Verfasst: 13. November 2008 12:51
von solarix

Was genau ist an der Antwort von Ginsengelf unklar?
Auf gar keinen Fall eine Funktion mit 40 Paramtern schreiben, da weißt du spätestens beim zehnten nicht mehr, ob es jetzt der zehnte oder doch schon der elfte ist...
Verfasst: 13. November 2008 12:55
von nici
ja sry, ich habs ja auch schon längst geändert,
in
Code: Alles auswählen
void TabDrei::check() {
QVector<QWidget*> vector;
for (int i=0; i<=40; i++) {
vector.push_back(new QDoubleSpinBox);
vector[i]->setValue(0.3);
qDebug() << vector[i]->value();
}
}
wie kann ich aber für die 0.3 einen Defaultwert setzten, oder alle Funktionen nutzen??
Verfasst: 13. November 2008 15:50
von nici
also die komplette Datei sieht so aus
Code: Alles auswählen
#include <QtGui>
#include "TabDrei.h"
TabDrei::TabDrei(QWidget *parent)
:QWidget(parent)
{
setupUi(this);
}
void TabDrei::check(){
QVector<QWidget*> vector;
for (int i=0; i<=40; i++) {
vector.push_back(new QDoubleSpinBox);
vector[i]->setValue(0.0);
qDebug() << vector[i]->value();
}
}
void TabDrei::showConvError(const QString & value, const QString & inputNumber ){
QMessageBox::warning(this, "Warnung", "Der von Ihnen eingegebene Wert \"" + value + "\" im Feld \"" + inputNumber + "\" ist ungueltig.");
}
so und jetzt weiss ich erlich nicht weiter, hillllffeee.
Verfasst: 13. November 2008 16:17
von upsala
so und jetzt weiss ich erlich nicht weiter, hillllffeee.
Mit was?
Verfasst: 13. November 2008 16:27
von nici
ja wie ich die Werte in die Funktion bekommen. Ich habe von einem Arbeitskollegen die Funktion für eine Phasenplatte bekommen. Dieser Funktion muss ich die 40 Werte übergeben. Jetzt weiss ich nicht wie ich das mit SIGNAL und SLOT richtig mache.
ein Slot habe ich schon, aber noch kein Signal.
Verfasst: 13. November 2008 17:51
von upsala
Wo ist dann das Problem? Ein Signal hat doch die selben Parameter wie ein Slot.