QListModel mit Items in QComboBox mischen?
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
auswahl
bereit stehen
besondere textur
code
einzelnen parameter
entfernen
extra funktionen
falle
filter
geladenen texturen
item
parameter
programm
richtigen suchbegriffe
sektor
struktur
textur
url
verwaltung
zentralen liste
-
Ich schreibe derzeit ein Programm, das mit Texturen arbeitet, die für verschiedene Parametrisierungen verwendet werden. Die Nutzeroberfläche ist in Qt geschrieben und deshalb versuch ich so viel wie möglich mit den Qt eigenen Sachen zu machen. Dazu gehört unter anderem die Verwaltung von geladenen Texturen.
Ich habe mehrere Parameter, die durch eine Textur bestimmt werden können und ich möchte jede beliebige geladene Texture an jeden Parameter anhängen können.
Deshalb habe ich erst mal eine Liste der geladenen Texturen, die ich über eine QComboBox auswählen kann, um sie anzuschauen.
Zusätzlich möchte ich für jeden Parameter, der durch eine Textur bestimmt werden kann, eine weiter ComboBox anlegen, in der die Textur ausgewählt werden kann. Das ist an sich ja kein Problem, wenn ich die Texturen in einem QListModel speichere und dieses dann den ComboBoxes zuweise. Allerdings habe ich für jeden einzelnen Parameter noch eine besondere Textur, die nur diesem zugeordnet werden darf und auch in seiner ComboBox zur Auswahl bereit stehen soll.
Außerdem sollen auch wieder Texturen entfernt und Items umbenannt können (außer natürlich die Standardeinträge).
Wie kann ich dies erreichen?
Ist das überhaupt ohne weiteres möglich? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo sektor,
einerseits könntest Du die Comboboxen explizit füllen. D.h. Du fügst mit der addItem()-Methode die gewünschten Einträge ein.
Eine andere Möglichkeit wäre vielleicht eine von QAbstractItemModel abgeleitete Klasse zu erstellen, die dann einerseits als Filter bezüglich einer zentralen Liste wirkt und andererseits die spezifischen zusätzlichen Einträge bereitstelle:
Die Combobox fragt bei CustomModel nach den einträgen und CustomModel liefert die erlaubte Teilmenge der Texturliste + speziefische Einträge zurück.. Texturliste ^ ____________________|___________________ | | | CustomModel1 CustomModel2 CustomModel3 ^ ^ ^ | | | Combobox1 Combobox2 Combobox3
Edit: http://developer.qt.nokia.com/doc/qt-4.8/qabstractitemmodel.html#subclassing
Beitrag zuletzt geändert: 24.2.2012 20:54:48 von darkpandemic -
Auch wenn es mir nicht gefällt, werde ich wahrscheinlich direkt die Einträge in die einzelnen ComboBoxes einfügen und wieder entfernen, wenn nötig.
Wenn ich mehr Zeit habe, werde ich mal schauen, ob ich das mit den CustomModels umsetze.
Noch eine andere Frage:
Kann man ein QVariant und z.B. eine ComboBox so verbinden, dass die QVariant immer den aktuellen Wert der ComboBox enthält? Ich meine natürlich kann man dafür extra Funktionen schreiben aber es ist so eine allgemeine und häufig benötigte Funktion, dass ich mir vorstellen könnte, dass es direkt vorgesehen wurde. Ich meine auch mich an dieser Feature zu erinnern aber mir fallen nicht die richtigen Suchbegriffe ein, sodass ich meist bei irgendwelchen Seiten über die MVC Struktur raus komme.
Beitrag zuletzt geändert: 25.2.2012 14:58:01 von sektor -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage