Group Box mit Buttons & Textfeldern mehrfach zur Laufzeit erstellen



  • Hallo,

    kurz vorweg: Ich bin absolut neu in Qt, hab aber schon viel mit c++ gearbeitet.

    Kurz gesagt:
    Ich würde gerne wissen, ob es möglich ist, mehrere gleichartige Group Boxes je nach Kontext innerhalb des Programms zur Laufzeit zu erstellen.

    Lang gesagt:
    Innerhalb meines Programms gibt es Listen unterschiedlicher Länge, die aber die selben Objekte enthalten bzw als Typ haben.
    Nun möchte ich, dass für jedes Objekt der ausgewählten Liste in der GUI in einer Listenansicht eine Group Box mit 4 Textfeldern, deren Inhalt vom Objekt der Objektliste kommt, und einem Button erstellt wird.

    Ziemlich abgedroschenes Beispiel:
    Bibliothek: Ich habe für jedes Genre eine Liste mit Büchern. Jedes Buch ist Programmintern ein Objekt, das ISBN, Zusammenfassung etc. enthält.
    Jetzt soll in der GUI für ein ausgewähltes Genre eine Liste erstellt werden. Jedes Element der Liste ist eine Group Box mit der ISBN usw. und einem Button "Ausleihen".
    Außerdem werden manchmal weitere "Bücher" zu den Listen hinzugefügt.

    Blöd gefragt:
    Wie mache ich das? Also welche Klassen brauche ich und wie sieht ein elegantes Programmdesign dafür aus?
    Kann man eine Art Design-Vorlage dafür erstellen, die nur kopiert und befüllt werden muss?
    Wie gesagt, ich hab mit Qt gerade erst angefangen und mit der GUI-Programmierung allgemein wenig am Hut. Wenn jemand also ein gutes Tutorial zu diesem Beispiel kennt (egal ob deutsch oder englisch), gerne Posten.
    Ich bevorzuge das Learning by Doing 😉

    Viele Grüße
    Cherup



  • Cherup schrieb:

    Ich würde gerne wissen, ob es möglich ist, mehrere gleichartige Group Boxes je nach Kontext innerhalb des Programms zur Laufzeit zu erstellen.

    Ja. Ich bin grad zu müde, deinen Text zu lesen. Versteh auch nicht, wo du hier Probleme haben könntest. Alle Widgets sind Klassen, z.B. QGroupBox. Die kannst du ganz normal mit new anlegen.


  • Mod

    Ich weiss jetzt nicht ganz was du willst...
    ... aber es sollte mit Qt möglich sein :p

    Ein möglicher Weg:
    Für jede Item Kategorie ein QWidget mit Controls erstellen, und dann dieses jeweils mit den Daten des gerade ausgewählten Datensatzes füllen.
    Bei einer Adressdatenbank könntest du dann zum Beispiel die Namen in einer Listbox/widget anzeigen, und bei der Auswahl die Daten des Datensatzes in das Formular laden...



  • Ok,

    schonmal danke 🙂

    Mein Problem ist schlicht und einfach, dass ich noch absolut keine Ahnung von Qt und der dahinterstehenden Design-Philosophie habe 😃

    Wollte erstmal nachfragen, ob es so möglich ist, wie ich es mir vorstelle, bevor ich mich in die "Sprache" einarbeite. Weiß z.b. nicht wirklich was ein Widget genau darstellt (ist).

    Könnt ihr mir gute Tutorials empfehlen? Das erspart mir eine google-suche und das lesen einiger Tutorials, die mich nicht weiterbringen 😃

    (Natürlich werde ich jetzt erstmal Google befragen, also keine Sorge, bin keiner von der Sorte: "ich will das und das, wie geht das? Macht mir das!" 😉 )

    Viele Grüße

    Cherup


Anmelden zum Antworten