我使用QSqlTableModel創建了一個QTableView。 按標準,雙擊單元格會標記它們,用戶可以編輯它們。 我想要的是,用戶不允許這樣做。他可以通過點擊單個單元格來標記整行,但不能編輯單元格。 我該怎麼做?QTableView - 不允許用戶編輯單元格
9
A
回答
17
根據您是否正在編寫任何代碼或設計師做的事情,設置
editTriggers
到QAbstractItemView::NoEditTriggers
selectionBehavior
到QAbstractItemView::SelectRows
- 選擇設置
selectionMode
到QAbstractItemView::SingleSelection
如果您希望用戶選擇恰好一行
適當的調用都將用在設計set
例如setEditTriggers()
前綴的tableview對象上,你可以找到在AbstractItemView
部分
8
試試這個:
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
2
切換掉的表項的ItemIsEditable
位。例如: -
QTableWidgetItem* item = new QTableWidgetItem(...);
...
item->setFlags(item->flags() &= ~Qt::ItemIsEditable);
1
理想情況下,你將要使用:
void QAbstractItemView::setItemDelegate (QAbstractItemDelegate * delegate)
,然後創建一個從QItemDelegate
繼承像this例如一類。 編輯類有
QWidget * QItemDelegate::createEditor (QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index) const
回報NULL
或使用:
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
你也想看看
void setSelectionBehavior (QAbstractItemView::SelectionBehavior behavior)
使用參數:QAbstractItemView::SelectRows
相關問題
- 1. 編輯QTableView單元格值
- 2. 允許用戶編輯UITableView單元格中的文本
- 3. 允許用戶編輯CSS
- 4. jqGrid只允許在編輯單元格時編號
- 5. 允許單個用戶一次編輯Google電子表格
- 6. 當試圖編輯QTableView中的單元格時調用QFileDialog
- 7. 允許用戶編輯和存儲HTML
- 8. 只允許某些用戶編輯ASPxGridView
- 9. EditText不允許編輯
- 10. TextField不允許編輯
- 11. 形式不允許編輯
- 12. 用戶在TStringGrid中編輯單元格
- 13. 在QTableView中顯示行中所有單元格的編輯器
- 14. PyQt5 QTableView單元格編輯行爲 - 原始值的疊加
- 15. 編輯QTableView單元格時設置初始文本
- 16. C#DataGridView單元格不允許小數
- 17. WPF Datagrid編輯將不會允許我更改其他單元格
- 18. 什麼,允許用戶編輯網站維基風格
- 19. 禁用內聯和單元格編輯,只允許在jqgrid中進行表單編輯
- 20. 需要保留一些列可編輯和不可編輯,並允許單元格編輯只需雙擊單元格
- 21. 當點擊按鈕時,QTableView不會更新已編輯的單元格
- 22. 編輯表格單元格
- 23. Winforms Combobox - 不允許用戶編輯項目
- 24. 不允許用戶從查詢中編輯數據庫
- 25. 允許編輯短名稱的敏捷添加/編輯表格
- 26. 管理員用戶允許刪除和編輯其他用戶
- 27. jqGrid單元格編輯 - 雙擊編輯?
- 28. 如何編輯QTableView
- 29. 允許用戶無需編輯帳戶:url中
- 30. 允許用戶編輯帳戶,而無需身份在網址
這就是所謂的QAbstractItemView中:: NoEditTriggers,QAbstractItemView中:: SelectRows和QAbstractItemView中::這些選項SingleSelection,但這正是我正在尋找的。謝謝! – Berschi 2009-08-25 14:34:10