Ich versuche nun schon seit Stunden eine Liste von QPixmaps in einer QComboBox auswählbar zu machen. Genau gesagt kann ich die sogar anzeigen lassen, auch das Auswählen funktioniert (siehe Anhang). Das eigentliche Problem dabei ist, sobald das Pop-Up-Menü wieder einklappt wird nichts mehr angzeigt!
Zuerst habe ich versucht das ganze über ein QAbstractListModel zu lösen:
private ArrayList<String> paths;
private ArrayList<QPixmap> watermarks;
...
@Override
public Object data(QModelIndex index, int role) {
if (role == Qt.ItemDataRole.SizeHintRole) {
return this.watermarks.get(index.row()).size();
} else if (role == Qt.ItemDataRole.DecorationRole) {
return this.watermarks.get(index.row());
}
return null;
}
@Override
public int rowCount(QModelIndex index) {
return this.watermarks.size();
}
}```
Nachdem das nicht funktioniert hat, habe ich versucht das Ganze mit einem QItemDelegate zu lösen - vergeblich. Daher bin ich jetzt wieder zu meiner Model-Lösung zurückgekehrt. Kennt sich hier zufällig jemand mit QtJambi oder C++ Qt aus? Ich habe echt keine Ahnung mehr wie ich das hier angehen soll.
[QUOTE=Marco13]In der Doku zu http://doc.qt.nokia.com/qtjambi-4.4/html/com/trolltech/qt/core/QAbstractListModel.html steht
"Well behaved models also provide a headerData() implementation. "
Das ist jetzt wildeste (!) unfundierteste (!) Spekulation, aber könnte es sein, das das, was bei „headerData“ zurückgegeben werden muss, gerade die Auswahl ist?[/QUOTE]
Hm, wäre schon ziemlich kurios wenn das tatsächlich die Lösung des Problems wäre. Allerdings hab ich die Idee mit der QComboBox bereits aufgegeben. Ich habe mich stattdessen für eine QListView entschieden - die funktioniert sogar mit exakt demselben Listmodel und das ohne die geringste Anpassung
Aber du hast schon recht, QtJambi ist in der Tat ein etwas exotisches Java-Framework und sonderlich aktiv wird es im Moment auch nicht weiterentwickelt wie mir scheint. Ich kannte es eben von C++ her und war bisher auch immer ziemlich zufrieden damit - besonders der GUI-Designer hat es mir angetan (das war imho immer ein großes Manko von Swing, da hab ich noch keinen einzigen guten Designer gesehen).