Hi,
was ich vor habe ist folgendes:
Ich möchte das ich ein QWidget habe, in dem Wenn ich einen Butten drücke weitere QWidgets entstehen die Kinder von dem bereits existierenden Widget sind.
Mein Probleme sind jetzt das ich das von Qt nicht wirklich verstehe wie das mit den Widgets geht // parent = 0 // und so... und wie ich dann neue Widgets in das bestehende Widget bekommen sowie die Festlegung der Größe und Position des Widgets.
Im Moment schaffe ich ein neues Widget zu erstellen das aber dann getrennt entsteht und eine Feste größe hat.
Also wäre nett wenn mir jemand das mit den Widgets und der Vererbung erklären könnte. Und mir jemand sagen kann wie ich neue Widgets mit meinen Angaben erstellen kann.
PS: Für die die mir schon öfters geholfen haben ich habe eine neue Klasse für die neuen Widgets und die soll von ParameterToolWidget erben.
Ziel: Ziel ist es dann durch eingabe eines Wertes und drücken eines Knopfes in dem Fest bestehenden Widget "Wert" neue Widgets zu erstellen die sich an die jeweiligen Positionen stellen.
Im Prinzip muss ich mir Widgets erstellen lassen die alle gleich sind aber die erstellung muss Flexibel sein sonst hätte ich das auch mit dem Designer gemacht.
Ich hoffe mal mein anliegen habe ich verständlich ausgedrückt.
Gruß
Qt-nator
Frage zu QWidget (Vererbung und erstellen)[gelöst]
Frage zu QWidget (Vererbung und erstellen)[gelöst]
Zuletzt geändert von Qt-nator am 25. März 2008 14:38, insgesamt 1-mal geändert.
Im Prinzip brauchst du ein Layout. Je nachdem wie die zu erstellenden Widgets angeordnet werden sollen ein QHBoxLayout, QVBoxLayout, oer gar QGridLayout.
Schau dir dann im Assistant / Onlinedoku die Methoden zum Einfügen an.(addWidget/insertWidget).
Nun brauchst du in deinem Fenster mit den Knöpfen nur noch einen "Platz" (also ein Widget), welchem du das entsprechende Layout zuweist (setLayout). Auf Kopfdruck erstellst du dann dynamisch dein Widget und fügst es an die entsprechende Position im Layout ein. Fertig.
Grüße
Franz
Schau dir dann im Assistant / Onlinedoku die Methoden zum Einfügen an.(addWidget/insertWidget).
Nun brauchst du in deinem Fenster mit den Knöpfen nur noch einen "Platz" (also ein Widget), welchem du das entsprechende Layout zuweist (setLayout). Auf Kopfdruck erstellst du dann dynamisch dein Widget und fügst es an die entsprechende Position im Layout ein. Fertig.
Grüße
Franz
das mit Layout klingt sinvoll nur muss ich ja Flexibel auf die Eingabe und mein Widget sein.
Soll heisen. wenn ich 4 Eingebe muss das Widget sich quasi in 4 gleich große Widgets aufteilen... (4 Widgets kommen über das erste) aber bei einer anderen eingabe was anderes... da hab ich mir schon gedanken über eine schleife gemacht nur leider kann ich sie nicht umsetzen.
Und das Widget wird ja auch größer und kleiner ... weis ich nicht ob ein Layout da wirklich perfekt ist.. aber sicher ein guter ansatz.
kann ich eigentlich so die Position eines Widgets bestimmen?
Edit:
Sorry ich hab es flasch verstanden. Das Widget muss nicht vom Anderen Widget erben sondern soll ein Container Widget sein. (ist schon gelöst).
Das mit der Vererbung hab ich jetzt auch verstanden und wie man Position und größe setzt bin ich auch schon drauf gekommen.
Vielen dank
Soll heisen. wenn ich 4 Eingebe muss das Widget sich quasi in 4 gleich große Widgets aufteilen... (4 Widgets kommen über das erste) aber bei einer anderen eingabe was anderes... da hab ich mir schon gedanken über eine schleife gemacht nur leider kann ich sie nicht umsetzen.
Und das Widget wird ja auch größer und kleiner ... weis ich nicht ob ein Layout da wirklich perfekt ist.. aber sicher ein guter ansatz.
kann ich eigentlich so die Position eines Widgets bestimmen?
Code: Alles auswählen
Widget->pos().setX(0);
Widget->pos().setY(0);
Edit:
Sorry ich hab es flasch verstanden. Das Widget muss nicht vom Anderen Widget erben sondern soll ein Container Widget sein. (ist schon gelöst).
Das mit der Vererbung hab ich jetzt auch verstanden und wie man Position und größe setzt bin ich auch schon drauf gekommen.
Vielen dank