Je souhaite donc empêcher certaines colonnes de permettre le glissement des événements &. Je n'ai pas été en mesure d'ajouter un eventfilter à ces colonnes. Quelqu'un avec une idée comment faire ça? J'ai un QTableView
rempli d'un QStandardItemModel
et mis en place pour permettre glisser & déposer.QTableView activer les colonnes Glisser & Déposer uniquement pour des colonnes spécifiques
Répondre
Vous devez savoir où la souris se trouve, et le contrôle du processus avec
setAttribute(Qt::WA_AcceptDrops, false);
setAttribute(Qt::WA_AcceptDrops, true);
Où voulez-vous appeler setAttribute? Et la souris? – bob
Vous pouvez sous-classe le modèle d'une remplacer la méthode Qt :: ItemFlags QAbstractItemModel :: drapeaux (const QModelIndex & index const.
Je pense que ce serait une bonne tentative mais dans mon cas j'ai activé le drag & drop pour la vue d'en-tête de la table. Donc, je ne suis pas sûr de ce que j'obtiendrais comme un QModelIndex pour les cellules de l'en-tête – bob
Alors vous faites glisser et déposez les colonnes pour changer leur ordre? Je pense qu'un petit exemple de votre code pourrait être utile :) –
Vous pouvez fournir un [exemple minimal, complet et Vérifiable] (https://stackoverflow.com/help/mcve) – eyllanesc