#qt #tooltip #model-view
#qt #всплывающая подсказка #модель-представление
Вопрос:
Я использую модель, реализованную с использованием QAbstractTableModel. Я хочу показать отдельные всплывающие подсказки для всех заголовков. Однако в реализациях data() и headerData(), когда я печатаю роль, она никогда не становится Qt::ToolTipRole . Есть ли что-нибудь еще, что я должен сделать, чтобы запустить tooltiprole здесь?
QVariant jlsGenericReportTableModel::data(const QModelIndex amp;index, int role) const
{
printf("Role in data() = %dn",role);
if (role == Qt::DisplayRole)
{
// printf(" --- Returnedn");
if(_dataStore)
{
if(index.row() < _dataStore->RowCount())
{
return _dataStore->DataForTuple(index.row(),index.column());
}
}
else
{
if(index.row() < _rows.size())
{
return _rows.at(index.row())->DataForColumn(index.column());
}
}
}
else if (role == Qt::TextAlignmentRole )
{
if (( (QMetaType::Type)(data(index,Qt::DisplayRole)).type()) == QMetaType::QString)
return QVariant(Qt::AlignLeft | Qt::AlignVCenter);
else
return QVariant(Qt::AlignRight | Qt::AlignVCenter);
}
else if (role == Qt::ToolTipRole) {
printf("Triggeredn"); //Doesn't come here
//if (orientation == Qt::Horizontal)
return QString("Horizontal Header No. ");
//else
// return QString("Vertical Header No. ");
}
return QVariant();
}
Комментарии:
1. Какое представление вы используете с моделью?
2. Привет, Фрэнк, я использую здесь QTableView.
3. Для заголовков вам следует переопределить headerData()
4. Я тоже его переопределяю. Но роль никогда не будет Qt :: ToolTipRole .
5. В data () он работает, хотя