Creé una QTableView con QSqlTableModel. De forma estándar, hacer doble clic en las celdas las marcará y el usuario puede editarlas. Quiero que el usuario no pueda hacer eso. Él puede marcar toda la fila haciendo clic en una sola celda, pero no para editar la celda. ¿Cómo puedo hacer eso?QTableView: no permite que el usuario edite la celda
9
A
Respuesta
17
Dependiendo de si se está codificando todo o hacer cosas en el diseñador, establezca
editTriggers
aQAbstractItemView::NoEditTriggers
selectionBehavior
aQAbstractItemView::SelectRows
- opcionalmente establecer
selectionMode
aQAbstractItemView::SingleSelection
si desea que el usuario seleccione exactamente una fila
en el objeto tableview las llamadas apropiadas serán todos prefijo set
por ejemplo setEditTriggers()
en el diseñador puede encontrar estas opciones en la sección AbstractItemView
8
Prueba esto:
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
2
OFF CON ItemIsEditable
bits del elemento de la tabla. ej .:
QTableWidgetItem* item = new QTableWidgetItem(...);
...
item->setFlags(item->flags() &= ~Qt::ItemIsEditable);
1
Lo ideal es que se desea utilizar:
void QAbstractItemView::setItemDelegate (QAbstractItemDelegate * delegate)
Y a continuación, crear una clase que hereda de QItemDelegate
como en this ejemplo. Edición de la clase para tener
QWidget * QItemDelegate::createEditor (QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index) const
retorno NULL
o uso:
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
También tendrá que buscar en
void setSelectionBehavior (QAbstractItemView::SelectionBehavior behavior)
Con el parámetro: QAbstractItemView::SelectRows
Como referencia: http://doc.trolltech.com/4.5/qtableview.html
Cuestiones relacionadas
- 1. Winforms Combobox - no permite que el usuario edite elementos
- 2. Permitir que un usuario edite el texto en una celda UITableView
- 3. QTableView tiene casillas de verificación no deseadas en cada celda
- 4. ¿Cómo permitir que el usuario registrado de MediaWiki edite Common.css?
- 5. ¿Es posible que un usuario malintencionado edite $ _SESSION?
- 6. Permitir que se edite una columna pero no otra
- 7. Establecer texto inicial al editar una celda QTableView
- 8. jQuery selector de fechas con el texto de entrada que no permite la entrada del usuario
- 9. Devise - Confirmando después de que el usuario edite el correo electrónico
- 10. ¿Cómo obtener el valor de celda de la fila seleccionada (QTableView)?
- 11. htaccess permite el acceso al usuario específico
- 12. ¿Cómo puedo permitir que el usuario edite elementos en un ListBox?
- 13. UItableViewCell: no permite seleccionar la celda, pero aún puede presionar botones dentro de ella?
- 14. Determinar si QTableView tiene un editor abierto
- 15. No permita que la celda se mueva a otra sección
- 16. Qt - QTableView - Botón que hace clic en la fila de la tabla
- 17. ¿Cómo puedo cambiar el tamaño QTableView de manera que la zona no se desplaza más
- 18. QTableView selectionChanged
- 19. cómo obtener bordes redondeados en UITableViewCell de manera que el usuario pueda seleccionar el color de fondo de la celda? (Pero no se utiliza el modo AGRUPADOS)
- 20. ¿Cómo se puede editar una celda QTableView desde una prueba de unidad QTest?
- 21. El elemento no aparece en IE7 hasta que lo edite mediante Developer Toolbar
- 22. WPF datagrid ¿permite al usuario agregar filas?
- 23. SharedResourceDictionary: edite el recurso en Blend
- 24. Eclipse: edite el origen y continúe depurando
- 25. Vim - edite fácilmente el resultado del filtro
- 26. JQuery datepicker permite al usuario configurar el año
- 27. Por qué Windows no permite que WinSock se inicie mientras se hace pasar por otro usuario
- 28. Qt4: eventos del botón del mouse de QTableView no detectados
- 29. Cómo deshabilitar el modo de edición en QTableView?
- 30. Mostrando una columna QTableView oculta
se llama QAbstractItemView :: NoEditTriggers, QAbstractItemView :: SelectRows y QAbstractItemView :: SingleSelection, pero es exactamente lo que estaba buscando. ¡Gracias! – Berschi