Hallo zusammen
Zur Zeit bin ich am Erstellen einiger Widgets, welche als Plugins direkt im Designer eingebunden werden (Via CustomWidgetInterface).
Eines dieser Widgets sollte eine (unbekannte) Anzahl QPixmap übernehmen, welche natülich via ein Dialogfenster ausgewählt werden müssen. Meine momentane Lösung ist, eine bestimmte Anzahl (z.B. 16) Property-Felder fix definieren (mittels Q_PROPERTY(QPixmap xy READ xy_0x WRITE setxy_0x)). Daher man hat im Property Editor der entsprechenden Komponente dann 16 Felder des Typs QPixmap zur Vefügung, in welchem man die einzelnen Bilder definieren kann. Leider bedingt dies auch 16 get/set Methoden in der Klasse und der Code wird dadurch relativ unübersichtlich. Weiterer Nachteil ist, dass in 75% aller Fälle nur einige wenige dieser Felder benötigt werden (z.B. 4 und nicht 16).
Um diese Nachteile zu umgehen, möchte ich den PropertyEditor so erweitern, dass ich in einem Property-Feld eine Liste mit QPixmaps (Auswahl der Bilder wenn möglich mit Filedialog) definieren kann. Dem Widget wird dann eine Liste/Vector/o.ä. mit den ausgewählten Bildern übergeben. Das Makro Q_PROPERTY würde dann z.B so aussehen: Q_PROPERTY(QPixmapList Pixmaps READ Pixmaps WRITE setPixmaps)
Damit dies möglich ist, muss man aber den Property-Editor um diesen neuen Typ "QPixmapList" erweitern, da dies vom PropertyEditor nicht uterstützt wird (Listen im Allgemeinen nicht). Hat da jemand eine Ahnung, wie das geht? Ich vermute, dass die Klasse QDesignerPropertyEditorInterface eine Rolle spielt. Leider ist diese aber sehr schlecht dokumentiert.
Für Antworten bin ich dankbar.
Gruss irreriwan