QAbstractTableModel을 서브 클래 싱했으며 data() 함수에서 각 행의 마지막 열에 이미지를 표시하고 마우스를 올리면 툴팁이 표시됩니다.한 행에서 다른 행으로 이동할 때 툴팁이 업데이트되지 않습니다.
QVariant MyTableModel::data(const QModelIndex& index, int role) const
{
if (!index.isValid())
return QVariant();
if (role == Qt::DisplayRole)
{
switch (index.column())
{
// few cases
default:
return QVariant();
}
}
else if (role == Qt::CheckStateRole && index.column() == 0)
{
int state= tableData.at(index.row()).state;
if (state)
return Qt::Checked;
else
return Qt::Unchecked;
}
else if (role == Qt::DecorationRole && index.column() == 7 && index.row() > 1)
{
QPixmap pixMap(fileName);
return pixMap;
}
else if (role == Qt::ToolTipRole && index.column() == 7 && index.row() > 1)
{
return QString("Delete");
}
else
return QVariant();
}
도구 설명 텍스트는 각 행에 잘 표시되지만 난 그냥 (또는 아래에있는 행) 아래에 또 다른 마지막 열에 행의 마지막 열에서 커서를 이동할 때 툴팁은 상단 행에 남아 있습니다.
다른 행의 마지막 열로 이동하기 전에 커서를 다른 셀로 이동하면이 문제가 지속되지 않습니다. 도움 주셔서 감사합니다.
전체 방법입니까? 아니면 마지막으로 다른 것이 있습니까? 테이블 행의 일부 화면을 공유하여 경험 한 툴팁 효과를 표시 할 수 있습니까? modelCount가 반환하는 모델은 무엇입니까? – Dusteh
그래, 내가 제거하고 코멘트를 추가 한 몇 가지 경우를 제외하고는 전체 방법입니다 // 거의 사례가 없습니다. model columnCount는 8 개의 열이 있고 마지막 열에 삭제 버튼이 있으므로 8을 반환합니다. 내 UI의 거친 모형을 찾으십시오. https://imagebin.ca/v/32xi2VQ3ShBW – wazza
문제를 조사한 후 간단한 예제를 통해 문제를 재현 해 보았습니다. 자세한 정보는 답을 확인하십시오. – Dusteh