21,474
社区成员
发帖
与我相关
我的任务
分享
QVariant CSVTableModel::data( const QModelIndex &index, int role ) const
{
CTableModel::data(index,role);
if ( !index.isValid() )
{
return QVariant();
}
else if (role == Qt::DisplayRole || role == Qt::EditRole )
{
try
{
int a=m_RowList.count();
int b=m_RowList[index.row()].m_strRowValueList.size();
int c=index.column();
int r=index.row();
if(b>c)
return m_RowList[index.row()].m_strRowValueList[index.column()];
else
return QVariant();
}
catch(...)
{
return QVariant();
}
}
else if ( role == Qt::BackgroundRole )
{
return QBrush( Qt::green );
}
else if (role == Qt::ForegroundRole)
{
return QBrush(Qt::black);
}
return QVariant();
}
void CSVWnd::AddExtRefOneToOne( int index )
{
QItemSelectionModel* pSelectModel = m_pUi_SVWnd->m_SVLDTable->selectionModel();
if(NULL == pSelectModel)
{
return;
}
pSelectModel = m_pUi_SVWnd->m_FCDATable->selectionModel();
if(NULL == pSelectModel)
{
return;
}
QModelIndexList modellist = pSelectModel->selectedRows();
CExtSVTableModel* pFCDAModel = m_pExtSVTableModel;
CExtRefSVTableModel* pExtRefModel = m_pExtRefTableModel;
if(modellist.size()>32)
{
QMessageBox::information(this, "关联数目", "每次选择的采样输出不能超过32个!");
return;
}
//LN下内部地址对多个外部索引;对于同一个外部索引,LN下只能有一个内部地址与其对应
QStringList fcda = pFCDAModel->GetFCDAByRow(modellist[index].row());
QString outIndex = pFCDAModel->GetOutIndexByRow(modellist[index].row());
bool bCanInsert= pExtRefModel->InsertRow(outIndex ,fcda);
const QModelIndex modelIndex = m_pUi_SVWnd->m_SVLDTable->m_index;
if ( bCanInsert )
{
//设置指定的地方的背景颜色为绿色,好像不起作用
m_pUi_SVWnd->m_SVLDTable->model()->setData(m_pUi_SVWnd->m_SVLDTable->m_index,QColor(Qt::green), Qt::BackgroundRole);
}
else
{
m_pUi_SVWnd->m_SVLDTable->model()->setData(modelIndex,QColor(Qt::red), Qt::BackgroundRole);
}
setRefTableViewHeight( m_pExtRefTableModel->rowCount() );
pExtRefModel->Refresh();
setTableViewFontAndRowHeight( 2 );
}
