J'ai créé QTableView avec un QSqlTableModel. En standard, un double-clic sur les cellules les marquera et l'utilisateur pourra les éditer. Je veux que l'utilisateur ne soit pas autorisé à le faire. Il est autorisé à marquer la ligne entière en cliquant sur une seule cellule, mais pas pour éditer la cellule. Comment puis-je faire cela?QTableView - ne pas autoriser l'utilisateur à modifier la cellule
9
A
Répondre
17
Selon que vous codez tout ou faire des choses dans le concepteur, définissez
editTriggers
àQAbstractItemView::NoEditTriggers
selectionBehavior
-QAbstractItemView::SelectRows
- manière optionnelle
selectionMode
-QAbstractItemView::SingleSelection
si vous voulez que l'utilisateur sélectionne exactement une ligne
sur l'objet tableview les appels appropriés seront tous préfixés avec set
par exemple setEditTriggers()
dans le Designer, vous pouvez trouver ces options dans la section AbstractItemView
8
Essayez ceci:
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
2
bascule hors ItemIsEditable
de l'élément de table bits. .: par exemple
QTableWidgetItem* item = new QTableWidgetItem(...);
...
item->setFlags(item->flags() &= ~Qt::ItemIsEditable);
1
Idéalement, vous voulez utiliser:
void QAbstractItemView::setItemDelegate (QAbstractItemDelegate * delegate)
Et puis créez une classe qui hérite de QItemDelegate
comme dans this exemple. Modification de votre classe d'avoir
QWidget * QItemDelegate::createEditor (QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index) const
retour NULL
ou de l'utilisation:
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
Vous voudrez aussi regarder
void setSelectionBehavior (QAbstractItemView::SelectionBehavior behavior)
Avec le paramètre: QAbstractItemView::SelectRows
Pour référence: http://doc.trolltech.com/4.5/qtableview.html
Questions connexes
- 1. SFAuthorizationView autoriser: la méthode ne fonctionne pas
- 2. Modifier la cellule dans la ligne sélectionnée
- 3. Autoriser seulement certains utilisateurs à modifier ASPxGridView
- 4. DataGridView - "Style de sélection de cellule" - Modifier la cellule
- 5. Ne pas autoriser le zéro dans la zone de texte
- 6. ne peut pas modifier la chaîne gelée
- 7. UIButton ne fonctionne pas dans la cellule tableview
- 8. La cellule du tableau ne s'étend pas correctement
- 9. Comment autoriser les utilisateurs à modifier les menus frontaux?
- 10. Comment autoriser l'utilisateur connecté MediaWiki à modifier Common.css?
- 11. Ne pas autoriser la liaison à chaud d'images, sauf si connecté
- 12. Autoriser le client à modifier des fichiers, ajouter des dossiers * Pas dans FTP *
- 13. Glisser un élément à partir d'un QTableView/QSqlTableModel
- 14. Autoriser l'attribut avec les rôles ne fonctionnant pas correctement
- 15. Cellule de case à cocher dans une vue de table: l'utilisateur ne peut pas la vérifier
- 16. UIScrollView dans UITableCellView, la cellule ne se met pas à jour
- 17. Modifier la couleur d'une cellule particulière dans DataGrid?
- 18. Copier la couleur d'intérieur de cellule de la cellule cliquée à la cellule active
- 19. Comment modifier une colonne MySQL pour autoriser NULL?
- 20. Modifier mon site Web pour autoriser les commentaires anonymes
- 21. SQL Export vers Excel résultats à doc verrouillage, ne peut pas modifier la feuille
- 22. attacher une cellule à une cellule focalisée
- 23. cellule C# dataagrid N'est pas
- 24. Les commandes pas à pas ne voient pas la deuxième liste déroulante
- 25. Comment valider et modifier une valeur de cellule
- 26. Autoriser seulement pdfs à être téléchargées
- 27. HoverMenuExtender n'apparaît pas à l'intérieur de la cellule du tableau masqué
- 28. Forcez la subversion à ne pas fusionner des fichiers spécifiques
- 29. Autoriser l'utilisateur à modifier/ajouter/déplacer des éléments dans une image
- 30. Déverrouiller une cellule à partir d'une cellule adjacente
il est appelé QAbstractItemView :: NoEditTriggers, QAbstractItemView :: SelectRows et QAbstractItemView :: SingleSelection, mais c'est exactement ce que je cherchais. Je vous remercie! – Berschi