Hallo,
also die Eigenschaften des ListView sehen folgendermaßen aus (vom ui-File übersetzt):
Code: Alles auswählen
qlv_anzeige = new QListView(qgb_anzeige);
qlv_anzeige->setObjectName(QString::fromUtf8("qlv_anzeige"));
qlv_anzeige->setGeometry(QRect(10, 20, 711, 131));
qlv_anzeige->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
qlv_anzeige->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
qlv_anzeige->setProperty("showDropIndicator", QVariant(false));
qlv_anzeige->setDragEnabled(true);
qlv_anzeige->setDragDropOverwriteMode(false);
qlv_anzeige->setDragDropMode(QAbstractItemView::DragOnly);
qlv_anzeige->setAlternatingRowColors(false);
qlv_anzeige->setSelectionBehavior(QAbstractItemView::SelectRows);
qlv_anzeige->setTextElideMode(Qt::ElideMiddle);
qlv_anzeige->setMovement(QListView::Snap);
qlv_anzeige->setProperty("isWrapping", QVariant(false));
qlv_anzeige->setSpacing(5);
qlv_anzeige->setViewMode(QListView::IconMode);
qlv_anzeige->setUniformItemSizes(true);
Eigenständig setzen tu ich im Code nur noch die Grid- und die Icon-Size. Das Model besitzt die Funktionalität:
Code: Alles auswählen
QVariant myModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
if (role == Qt::DecorationRole)
return QIcon(mIconList.value(index.row()).scaled(125, 100, Qt::KeepAspectRatio, Qt::SmoothTransformation));
else if (role == Qt::UserRole)
return mDataList.value(index.row());
return QVariant();
}
void myModel::addItem(const QPixmap &pixmap, const int value)
{
int row = mIconList.size();
beginInsertRows(QModelIndex(), row, row);
mIconList.insert(row, pixmap);
mDataList.insert(row, value);
endInsertRows();
}
int myModel::rowCount(const QModelIndex &parent) const
{
return mIconList.count();
}
Ich verstehe da jetzt nicht, warum das drag and drop nicht aktiviert ist?! Hinzufügen und Anzeigen klappt ohne Probleme.
Grüßle,
Matthias