PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ich bin zu blöde!



fs111
26-08-2002, 16:16
Hallo ihr Experten da draußen!

Ich habe ein Problem, ind zwar bastele ich grade ein bisschen mit QT herum, und bekomme da ein Problem nicht in den Griff. Ich habe ein Widget mit QLineEdits. Von diesem erzeuge ich in meiner main Methode ein neues Objekt. Nun möchte ich den Text (mit setText) der QlineEdits ändern, aber ich weiß nicht wie ich auf diese zugreifen kann. Ich hoffe ihr versteht was ich meine.


#include <qapplication.h>
#include "form2.h"
#include "Speise.h"



int main( int argc, char** argv )
{

Pizza bar = Pizza (1, "FSK", 5, "Fleisch", "Käse", "Schinken","","");
QApplication test( argc, argv );

Form1 foo(0,0, TRUE );
test.setMainWidget(&foo);
//hier möchte ich jetzt auf die Strings von dem Pizza Objekt zugreifen, aber wie sage ich es //dem compiler?
foo.show();

test.exec();
return 0;
}

Danke und Grüße

fs111

axeljaeger
26-08-2002, 17:05
Da müsste ich mal den Quelltect vom Pizza-Objekt haben. Aber solche initialisierungen würde ich in den Kostruktor vom Pizza-Objekt schreiben. Wenn es keine initialisierungen sind, halt entsprechnde get/set-Methoden implentieren.

fs111
26-08-2002, 17:50
hier ist sie. Wäre echt nett, wenn Du mir helfen könntest.

Danke und Grüße

fs111

TheDodger
27-08-2002, 05:33
Original geschrieben von fs111
Hallo ihr Experten da draußen!

Ich habe ein Problem, ind zwar bastele ich grade ein bisschen mit QT herum, und bekomme da ein Problem nicht in den Griff. Ich habe ein Widget mit QLineEdits. Von diesem erzeuge ich in meiner main Methode ein neues Objekt. Nun möchte ich den Text (mit setText) der QlineEdits ändern, aber ich weiß nicht wie ich auf diese zugreifen kann. Ich hoffe ihr versteht was ich meine.


#include <qapplication.h>
#include "form2.h"
#include "Speise.h"



int main( int argc, char** argv )
{

Pizza bar = Pizza (1, "FSK", 5, "Fleisch", "Käse", "Schinken","","");
QApplication test( argc, argv );

Form1 foo(0,0, TRUE );
test.setMainWidget(&foo);
// hier möchte ich jetzt auf die Strings von dem Pizza Objekt zugreifen,
// aber wie sage ich es dem compiler?
foo.show();

test.exec();
return 0;
}



Wie wäre es mit


QString zutat1 = bar.getZutat1();
QString zutat2 = bar.getZutat2();
.
.
.

fs111
27-08-2002, 11:58
String zutat1 = bar.getZutat1();
QString zutat2 = bar.getZutat2();

OK, das kann ich machen. Dann muss ich aber zuerst die Strings in meiner Speise.cpp ins QStrings umwandeln. Wenn das dann steht, muss ich aber irgendwie Zugriff auf die Gui Elemente bekommen. Wie sage ich ihm denn, dass er jetzt den QLineEdit blafasel aud meinem Form1 foo damit belegen soll? In Java macht man sowas ja mit der Punkt Notation, also mit foo.irgendeinElement.setText("einString"); Geht das hier auch so?

fs111

axeljaeger
27-08-2002, 12:48
Das wird nichts werden.

foo.irgendeinElement.setText("einString");

So in etwa müsste es aussehen:

foo.getIrgendeinElement()->setText("Ein string");

Du mußt natürlich noch die Methode getIrgendeinElement() implementieren. Der Pfeiloperator heist, das irgendeinElement ein Pointer ist. Man sollte QWidgets überhaupt nur als Pointer speichern.

Zu den QStrings: Wieso verwendest du zusätzlich std::string? Du müsstest das umwandeln können:

QString(string.c_str());

Damit hatte ich aber schonmal fiese Probleme

fs111
27-08-2002, 16:31
OK, Danke erstmal, dann bastel ich erstmal alles nach QString um, und dann suche ich mir einen anderen Ansatz.

fs111