segun personalizado personalizada educacion definicion caracteristicas autores aprendizaje qt model-view-controller model qtreeview

qt - personalizada - aprendizaje personalizado segun autores



¿Qué se debe hacer para un modelo personalizado para permitir la colocación? (2)

Finalmente me di cuenta de esto por mi cuenta.

Resulta que el problema era que en la función de indicadores, en el caso de los índices no válidos no había podido devolver el indicador ItemIsDropEnabled. Un índice no válido es la señal para el nodo raíz, es decir, el área de la vista donde no había elementos, por lo que el espacio vacío no era droppable.

Esto ha sido difícil de detectar porque he estado tratando de usar Drop para agregar elementos a mi árbol, y por lo tanto no había ninguno sin colocar, lo que significa que todo lo que vi fue el círculo con una barra.

Estoy intentando habilitar Drop en un modelo personalizado que he conectado a QTreeView .

He hecho lo siguiente:

  • Aseguró que acceptDrops esté habilitado en QTreeView
  • Implementado en mi modelo personalizado supportedDropActions para return Qt::CopyAction | Qt::MoveAction return Qt::CopyAction | Qt::MoveAction
  • Implementado en mi modelo personalizado mimeType s para devolver un QStringList con texto / uri-list
  • Implementado en mi modelo personalizado dropMimeData para manejar el drop si alguna vez ocurrió.

Esto es todo lo que necesitaba para hacerlo funcionar en un QTreeWidget .

He pasado a:

  • return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDropEnabled; implementados para return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDropEnabled; return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDropEnabled;

Sin embargo, cuando ejecuto mi aplicación e intento arrastrar un archivo en Windows a mi QTreeView , obtengo ese círculo no permitido de estilo Cazafantasmas con una barra que lo atraviesa.

¿Qué más debo hacer para habilitar las gotas?


Para aquellos que enfrentan problemas similares, quiero señalar que es necesario devolver Qt::CopyAction entre las acciones de Qt::CopyAction admitidas. Qt::MoveAction solo no funcionará.