я делаю простую нумерацию страниц с помощью QSqlQueryModel, выбирая из запроса 10000 * limit все - все работает нормально.но.Теперь я хотел бы отразить Vertical headerData объекта QTableView.
Я реализую headerData, потому что это постоянная функция, я не могу выполнить никаких вычислений внутри нее.поэтому у меня есть проблема, чтобы вычислить правильные числа в вертикальных заголовках.Например, я получаю строки от 20 до 30.
Мне нравится, что вертикальный заголовок показывает числа от 20 до 30.и так далее ...
вот так я реализую headerData:
QVariant PlayListSqlModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if(orientation == Qt::Vertical && role == Qt::DisplayRole)
{
return section;
}
if (role == Qt::DisplayRole)
{
if (orientation == Qt::Horizontal) {
switch (section)
{
case 0:
return QString("name");
case 1:
return QString("From");
case 2:
return QString("Created Time");
case 3:
return QString("last name");
case 4:
}
}
}
return QVariant();
}
ОБНОВЛЕНИЕ:
я даже пытаюсь вызвать функцию const, которая выполняет вычисление, но все равно у меня ошибка компиляцииновая функция const: ошибка C2166: l-значение указывает объект const
int PlayListSqlModel::calculateVerticalHeader() const
{
int returnHeaderCount = m_iHeaderCount;
m_iHeaderCount++;
return returnHeaderCount;
}
QVariant PlayListSqlModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if(orientation == Qt::Vertical && role == Qt::DisplayRole)
{
return calculateVerticalHeader();
}
if (role == Qt::DisplayRole)
{
if (orientation == Qt::Horizontal) {
switch (section)
{
case 0:
return QString("Clip");
case 1:
return QString("From");
case 2:
return QString("Created Time");
case 3:
return QString("Rating");
case 4:
return QString("Feed");
case 5:
return QString("Double click to watch");
}
}
}
return QVariant();
}