Мне хочется сделать возможность прокрутки таблицы (TableView) ниже чем по умолчанию позволяет скроллбар, так чтобы нижняя строка была посередине вьюхи. Как это лучше сделать? Добавлять фейковые элементы в конец не хочется, потому что данные идут из С++ модели. Что-то типа Flickable но для таблицы и без отката назад.
Пытался гуглить, не нашёл ничего ценного. Не хочется переизобретать с нуля TableView для таких целей.
Здравствуйте, SaZ, Вы писали:
SaZ>Всем доброго дня
SaZ>Мне хочется сделать возможность прокрутки таблицы (TableView) ниже чем по умолчанию позволяет скроллбар, так чтобы нижняя строка была посередине вьюхи. Как это лучше сделать? Добавлять фейковые элементы в конец не хочется, потому что данные идут из С++ модели. Что-то типа Flickable но для таблицы и без отката назад. SaZ>Пытался гуглить, не нашёл ничего ценного. Не хочется переизобретать с нуля TableView для таких целей.
Выцепить verticalScrollBar() и приплюсовать ему maximum?
Здравствуйте, SaZ, Вы писали:
SaZ>Пытался гуглить, не нашёл ничего ценного. Не хочется переизобретать с нуля TableView для таких целей.
На ум приходит анимация проперти высота TableView и заполнение пространства снизу невидимым прямоугольником, тоже анимированным по высоте и анхоры друг на друга прицепить чтобы позиционирвоание работало.
Ну и триггер начала анимаций это скорлл до последнего элемента. Конечно, всё через проперти биндинг лучше делать чтобы не писать много кода.
А можно и без невидимых прямоугольников, просто высоту обрамляющего прямоугольника анимировано менять.
Здравствуйте, Qt-Coder, Вы писали:
QC>Здравствуйте, SaZ, Вы писали:
SaZ>>Всем доброго дня
SaZ>>Мне хочется сделать возможность прокрутки таблицы (TableView) ниже чем по умолчанию позволяет скроллбар, так чтобы нижняя строка была посередине вьюхи. Как это лучше сделать? Добавлять фейковые элементы в конец не хочется, потому что данные идут из С++ модели. Что-то типа Flickable но для таблицы и без отката назад. SaZ>>Пытался гуглить, не нашёл ничего ценного. Не хочется переизобретать с нуля TableView для таких целей.
QC>Выцепить verticalScrollBar() и приплюсовать ему maximum?
Если честно, я ещё дилетант в qml. Не нашёл у него никаких пропертей связанных с maximum. Вижу только size но судя по документации это не то.
Пробую играться с ручным переопределением contentHeight, но появляются какие-то странные артефакты.
Здравствуйте, Kernan, Вы писали:
K>Здравствуйте, SaZ, Вы писали:
SaZ>>Пытался гуглить, не нашёл ничего ценного. Не хочется переизобретать с нуля TableView для таких целей. K>На ум приходит анимация проперти высота TableView и заполнение пространства снизу невидимым прямоугольником, тоже анимированным по высоте и анхоры друг на друга прицепить чтобы позиционирвоание работало. K>
K>Ну и триггер начала анимаций это скорлл до последнего элемента. Конечно, всё через проперти биндинг лучше делать чтобы не писать много кода. K>А можно и без невидимых прямоугольников, просто высоту обрамляющего прямоугольника анимировано менять.
Можно и без анимаций. Мы не сильно заморачиваемся, это служебное десктопное приложение. Но пока не получается добиться нужного эффекта.
Здравствуйте, SaZ, Вы писали:
SaZ>Всем доброго дня
SaZ>Мне хочется сделать возможность прокрутки таблицы (TableView) ниже чем по умолчанию позволяет скроллбар, так чтобы нижняя строка была посередине вьюхи. Как это лучше сделать? Добавлять фейковые элементы в конец не хочется, потому что данные идут из С++ модели. Что-то типа Flickable но для таблицы и без отката назад. SaZ>Пытался гуглить, не нашёл ничего ценного. Не хочется переизобретать с нуля TableView для таких целей.
Всё оказалось достаточно тривиально. Вырезал всю кастомную работу со скроллом и выставил bottomMargin: height / 2.