很奇怪,直接拿例子改来加到我的代码里,理论上default,双击表格中的任意一格都能直接编辑。因为setEditTriggers选的是DoubleClicked.
但是我双击任何一格都不能编辑,看上去是displayonly。这个需要我去定义deleget,专门做个Lineedit的控件给每一格么?
m_ElementSetTable = new QStandardItemModel(0, 2, this);
m_ElementSetTable->setHeaderData(0, Qt::Horizontal, QString::fromStdWString(L"样品"));
m_ElementSetTable->setHeaderData(1, Qt::Horizontal, QString::fromStdWString(L"数量"));
ui.ElementSetTable->setModel(m_ElementSetTable);
// Set width of each column
int nTableWidth = ui.ElementSetTable->width();
int nColumnWidth = nTableWidth / 9;
ui.ElementSetTable->setColumnWidth(0, 2*nColumnWidth);
ui.ElementSetTable->setColumnWidth(1, 7*nColumnWidth);
QHeaderView* headerView = ui.ElementSetTable->verticalHeader();
headerView->setHidden(true);
ui.ElementSetTable->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui.ElementSetTable->setEditTriggers(QAbstractItemView::DoubleClicked);
//---------------------------------------------------------------------------------------
下面是对第i行的第0列数据赋值。
QStandardItem* newItem = new QStandardItem(QStringsss);
newItem->setFlags(newItem->flags() |=(Qt::ItemIsEditable));
m_ElementSetTable->setItem(i,0,newItem);