Array?? Liste?? übergeben??

Du bist neu in der Welt von C++? Dann schau hier herein!
nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Array?? Liste?? übergeben??

Beitrag 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
Hmm mir fällt nichts ein ^^
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag 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 ...
nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Beitrag 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
Hmm mir fällt nichts ein ^^
Ginsengelf
Beiträge: 79
Registriert: 2. Mai 2007 10:21

Beitrag 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
nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Beitrag 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
Hmm mir fällt nichts ein ^^
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Auch wenn wir hier bei C++-Grundlagen sind. Hast du dir schon mal überlegt ein Buch über C++ zuzulegen?
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag 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
nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Beitrag 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??
Hmm mir fällt nichts ein ^^
nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Beitrag 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
Hmm mir fällt nichts ein ^^
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

:cry: 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...
nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Beitrag 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??
Hmm mir fällt nichts ein ^^
nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Beitrag 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.
Hmm mir fällt nichts ein ^^
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

so und jetzt weiss ich erlich nicht weiter, hillllffeee.
Mit was?
nici
Beiträge: 246
Registriert: 29. Oktober 2008 12:50

Beitrag 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.
Hmm mir fällt nichts ein ^^
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wo ist dann das Problem? Ein Signal hat doch die selben Parameter wie ein Slot.
Antworten