我正在Qtableview
裏面工作Qstandarditemmodel
。我在Qdeligates
派生的類中使用了Qtextedit
。這允許我在tableview中插入換行符。Qtableview&Qdeligate - qtextedit在左上角開幕
大部分事情都很好,但現在我面臨着一個挑戰,即當我點擊一個單元格來編輯Qtextedit在GUI的左上角時打開。當我點擊單元格row 0, column 3
textedit在左上角打開。
我怎樣才能讓我的Qtextedit
到小區附近開對此我編輯?
還什麼我應該把這個功能updateEditorGeometry
裏面?
這裏是我的初始化代碼,實現代碼如下: -
ui->testCaseTableView->verticalHeader()->resizeSections(QHeaderView::ResizeToContents); //---> original
ui->testCaseTableView->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);
ui->testCaseTableView->horizontalHeader()->setStretchLastSection(true);
//Set model & deligate
ui->testCaseTableView->setModel(model);
ui->testCaseTableView->setItemDelegate(mydeligate);
這裏是我的deligate代碼:---
QWidget* textViewDeligate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QTextEdit *tableEdit = new QTextEdit(parent);
return tableEdit;
}
void textViewDeligate::setEditorData (QWidget * editor, const QModelIndex & index) const
{
QString value = index.model()->data(index,Qt::EditRole).toString();
QTextEdit *tableEditCopy = static_cast<QTextEdit*>(editor);
tableEditCopy->setPlainText(value);
}
void textViewDeligate::setModelData (QWidget * editor, QAbstractItemModel * model, const QModelIndex & index) const
{
QTextEdit *tableEditCopy = static_cast<QTextEdit*>(editor);
QString str = tableEditCopy->toPlainText();
model->setData(index, str, Qt::EditRole);
}
void textViewDeligate::updateEditorGeometry (QWidget *editor, const QStyleOptionViewItem & option, const QModelIndex & index) const
{
}