QTableView - 不允许用户编辑单元格
我使用 QSqlTableModel 创建了 QTableView。 按照标准,双击单元格将对其进行标记,并且用户可以对其进行编辑。 我希望用户不允许这样做。他可以通过单击单个单元格来标记整行,但不能编辑该单元格。 我怎样才能做到这一点?
I created a QTableView with a QSqlTableModel.
By standard, double-clicking on the cells will mark them and the user can edit them.
I want, that the user isn't allowed to do that. He is allowed to mark the whole row by clicking on a single cell, but not to edit the cell.
How can I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
根据您是对所有内容进行编码还是在设计器中进行操作,将
editTriggers
设置为QAbstractItemView::NoEditTriggers
selectionBehavior
为QAbstractItemView:: SelectRows
selectionMode
设置为QAbstractItemView::SingleSelection
如果您希望用户在 tableview 对象上仅选择一行,则相应的调用都将带有
前缀code>set
例如设计器中的setEditTriggers()
,您可以在AbstractItemView
部分找到这些选项Depending on whether you are coding everything or doing things in the designer, set
editTriggers
toQAbstractItemView::NoEditTriggers
selectionBehavior
toQAbstractItemView::SelectRows
selectionMode
toQAbstractItemView::SingleSelection
if you want the user to select exactly one rowon the tableview object the appropriate calls will all be prefixed with
set
e.gsetEditTriggers()
in the Designer you can find these option in theAbstractItemView
section试试这个:
Try this:
关闭表格项目的
ItemIsEditable
位。例如:Toggle off the table item's
ItemIsEditable
bit. e.g.:理想情况下,您需要使用:
然后创建一个继承自
QItemDelegate
的类,如 这个示例。编辑您的类以
返回
NULL
或使用:
您还需要查看
使用参数:
QAbstractItemView::SelectRows
供参考:
http://doc.trolltech.com/4.5/qtableview.html
Ideally you will want to use:
And then create a class that inherits from
QItemDelegate
like in this example.Editing your class to have
return
NULL
or use:
You will also want to look at
With the parameter:
QAbstractItemView::SelectRows
For reference:
http://doc.trolltech.com/4.5/qtableview.html