2010-09-09 113 views
7

我现在正在使用QTableView和QStandardItemModel。如何触发QTableView中某个项目的编辑模式?

在QTableView中,如果你双击一个单元格,这个单元格将进入编辑模式,你可以编辑它的内容。

现在我有一个问题,我想通过代码(通过命令)触发项目的编辑模式,我该怎么办?我无法在QTableView或QStandardItemModel中找到合适的功能或插槽。我是否需要发出任何信号才能进入编辑模式?

如果我想知道编辑完成的时间(用户按“Enter”或点击另一个项目离开编辑模式),我应该捕捉哪个信号?

感谢您的帮助

回答

7

参见:

void QAbstractItemView::edit (const QModelIndex & index) [slot] 
void QAbstractItemView::closeEditor (QWidget * editor, QAbstractItemDelegate::EndEditHint hint) [virtual protected slot] 
void QAbstractItemView::editorDestroyed (QObject * editor) [virtual protected slot] 
+1

真的感谢!这解决了我所有的问题:) – 2010-09-10 02:04:03

10

,你应该能够使用QAbstractItemView类的编辑方法来触发编辑为给定的模型索引。

PLS,看看下面的例子会为你工作:

QModelIndex index = ui->tableView->model()->index(0, 0, QModelIndex()); 
ui->tableView->edit(index); 

希望这会有所帮助,至于

+0

非常感谢你的帮助,这很有帮助,而且这个例子有效:)我不能给出多个答案的正确标记,所以我可以投你一票^^ – 2010-09-10 01:55:48