Seite 1 von 1
ObjektArray
Verfasst: 22. März 2007 14:42
von Toni Tornado
Hab ne Frage, kann ich mit QVector auch nen dynamsiches Array von QLineEdit anlegen ? wenn ja, wie kann ich dann "this" an den QLineEditKonstruktor übergeben ?
MFG
Re: ObjektArray
Verfasst: 22. März 2007 14:45
von Christian81
Toni Tornado hat geschrieben:Hab ne Frage, kann ich mit QVector auch nen dynamsiches Array von QLineEdit anlegen ?
Ein QVector<QLineEdit*> ist natürlich möglich, warum sollte es nicht möglich sein?
Toni Tornado hat geschrieben:
wenn ja, wie kann ich dann "this" an den QLineEditKonstruktor übergeben ?
Das Verstehe ich nicht - was willst du machen?
Verfasst: 22. März 2007 14:59
von Toni Tornado
also ich möchte mehrere QlineEdits auf ein Fenster packen aber die Anzahl der QlineEdits möchte ich aus einer Datei auslesen. Und dann ein Array mit der anzahl bauen. hab zum testen mal sowas brobiert.
QVector<QLineEdit> test(20,this);
ging aber nicht.
Verfasst: 22. März 2007 15:01
von Christian81
Das geht nicht weil man QLineEdit (allg. QObject) nicht kopieren kann - ich habe dir aber gezeigt wie es geht.
Verfasst: 22. März 2007 15:10
von Toni Tornado
Ok wenn du mir noch schnell erklären könntest wo genau der unterschied
zwischen QVector<QLIneEdit> und QVector<QLIneEdit*> liegt wäre ich dir sehr dankbar.
MFG
Verfasst: 22. März 2007 15:12
von Christian81
Naja, ich würde sagen das ist Basic C++... QLineEdit* ist ein Pointer auf ein QLineEdit. Mehr gibts von mir zu solchen Fragen in einem Qt-Forum leider nicht.
Verfasst: 22. März 2007 15:18
von Toni Tornado
Ich weiss das dies ein Pointer ist, ich hab mich nur gefragt warum ich da unbedingt nen Pointer an Qvector übergeben sollte. Ich versteh QVector nämlich überhaubt nicht
Verfasst: 22. März 2007 15:20
von Christian81
QVector ist einfach wie ein normales C-Array. Da gibts nichts weiter zu verstehen.

Und Du musst hier einen Pointer nehmen weil Du , wie schon gesagt, eine von QObject abgeleitete Klasse nicht kopieren kannst.
Verfasst: 22. März 2007 15:48
von Toni Tornado
Aber um ein QlineEdit auf meinem MainWindow anzuzeigen muss ich doch
QLineEdit mit "this" MainWindow als Parent übereben. richtig ?
Dafür muss ich doch den Konstruktor von QLineEdit aufraufen.
Wie mach ich das wenn ich mit QVector<QLineEdit*> test(2);
das Array gebaut habe.
Verfasst: 22. März 2007 16:09
von Christian81
QVector<QLineEdit*> test(2) erzeugt einfach ein Array mit zwei (uninitialiserten) Pointern vom Type QLineEdit.
Verfasst: 22. März 2007 16:10
von franzf
Code: Alles auswählen
QVector< QLineEdit * > v;
int n = 20;
while( n-- > 0 )
v << new QLineEdit(this);
Nebenbei ist es nicht verpflichtend, den parent-Parameter zu verwenden ->