• 6724阅读
  • 0回复

QTableview不能编辑 [复制链接]

上一主题 下一主题
离线qsober
 
只看楼主 倒序阅读 楼主  发表于: 2011-07-06
关键词: QTableview
很奇怪,直接拿例子改来加到我的代码里,理论上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);

快速回复
限100 字节
 
上一个 下一个