Russian Qt Forum
Июнь 16, 2024, 04:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Прокрутка с прилипанием курсора  (Прочитано 20976 раз)
d13mon
Гость
« Ответ #15 : Декабрь 14, 2012, 23:41 »

Вы не умеете пока формулировать мысли. Вам нужен не "плавный" и "прилипчивый" курсор. Вам нужен просто последовательный переход по списку.
Так сами и реализуйте. Если разница от последнего движения < 20 допустим, тогда сдвигаем на 1/2/3/4 и т.д. Если >20 тогда двигать стандартно. В чём проблема?
Я прекрасно всё сформулировал - мне нужен прилипчивый курсор, это основная задача. А нужную плавность ползунка я действительно и сам могу реализовать. Это  дело 10-е.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Декабрь 14, 2012, 23:57 »

Могу уточнить: пусть у нас не 1000, а миллион строк. thumb в крайнем верхнем положении. Окно просмотра небольшое, видно только 100 строк.  thumb очень маленький из-за масштабов. Юзер хватает слайдер, дергает и прокручивает на строку с номером 100 000. А ему нужно спозиционироваться на 101-ю строку. Если курсор прилипает ( как в реализации что я видел), то происходит замедленный скроллинг, благодаря чему исключается ситуация перекручивания нужной позиции. Происходит более точное позиционирование. И так как курсор прилипает (а там наверняка происходит возвращение позиции), то можно довольно долго тянуть и не выйти за границы экрана
Не уверен что Вы меня правильно поймете (наверняка наоборот), но все же я попробую объяснить.

Любая вещь имеет "шипы и розы", а UI особенно. Все прекрасно пока мы пользуемся мощностями фреймворка - лихо и быстро. И даже возникают мысли/иллюзии типа "какой я талантливый, как быстро разобрался!" Улыбающийся Но вот когда мы пытаемся погладить эту кошку против шерсти - ничего хорошего не выходит. Вы упорно пытаетесь делать именно так - конечно это Ваше право. Но не лучше ли "собирать розы" и "обходить шипы"? Это куда более практично и (не побоюсь этого слова) профессионально. В реальном проекте даже 2 дня на "крутой скроллинг" - недопустимая роскошь - пусть скроллинг безумно крут.    

C'est la vie
Записан
Bepec
Гость
« Ответ #17 : Декабрь 15, 2012, 11:54 »

Я несогласен, Igors.
Для обучения и пробы сил, такие плюшечки очень полезны ) Заодно как раз твой совет поймёт Веселый

Но я до сих пор не понял чего хочет автор Улыбающийся Потому и помочь не могу.

PS вот если б он допустим нарисовал все состояния и переходы между ними, или же выложил тестовый проект с проблемой - тогда да.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #18 : Декабрь 15, 2012, 12:02 »

Могу уточнить: пусть у нас не 1000, а миллион строк.
Коли разговор идёт о таком количестве строк, о каком "прилипании" и вообще юзабельности может идти речь Непонимающий
Надо вообще перепроектировать интерфейс, а не забивать себе голову прокрутками.
Записан

Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #19 : Декабрь 15, 2012, 12:21 »

Для обучения и пробы сил, такие плюшечки очень полезны )
"Вообще говоря" да, но UI для этого, пожалуй, наихудшее место - все уходит в изучение потрохов чужих классов, проектирование практически на нуле
Записан
Bepec
Гость
« Ответ #20 : Декабрь 15, 2012, 14:18 »

Чем больше изучаешь чужих потрохов, тем опытнее становишься сам Веселый Прямая пропорциональность изучения хорошего кода.

PS хотя и я сам не достиг вершины самососредоточения понимания всех внутренностей Qt.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #21 : Декабрь 15, 2012, 14:34 »

Чем больше изучаешь чужих потрохов, тем опытнее становишься сам Веселый Прямая пропорциональность изучения хорошего кода.
Мне кажется за европейскую зарплату он мог быть и лучше Улыбающийся. Пропорциональность описывается формулой

E = 1.0 - e^(-kt), где

E - достигнутый эффект
t - время изучения
k - способности изучающего

И по ходу дела усилим Вас в "графике" - чему там соответствует эта формула?
Записан
Bepec
Гость
« Ответ #22 : Декабрь 15, 2012, 14:49 »

хз если честно ) Приводить реального человека к формулам бессмысленно Улыбающийся Слишком большой разброс параметров Веселый
Записан
d13mon
Гость
« Ответ #23 : Декабрь 15, 2012, 20:41 »

Могу уточнить: пусть у нас не 1000, а миллион строк. thumb в крайнем верхнем положении. Окно просмотра небольшое, видно только 100 строк.  thumb очень маленький из-за масштабов. Юзер хватает слайдер, дергает и прокручивает на строку с номером 100 000. А ему нужно спозиционироваться на 101-ю строку. Если курсор прилипает ( как в реализации что я видел), то происходит замедленный скроллинг, благодаря чему исключается ситуация перекручивания нужной позиции. Происходит более точное позиционирование. И так как курсор прилипает (а там наверняка происходит возвращение позиции), то можно довольно долго тянуть и не выйти за границы экрана
Не уверен что Вы меня правильно поймете (наверняка наоборот), но все же я попробую объяснить.

Любая вещь имеет "шипы и розы", а UI особенно. Все прекрасно пока мы пользуемся мощностями фреймворка - лихо и быстро. И даже возникают мысли/иллюзии типа "какой я талантливый, как быстро разобрался!" Улыбающийся Но вот когда мы пытаемся погладить эту кошку против шерсти - ничего хорошего не выходит. Вы упорно пытаетесь делать именно так - конечно это Ваше право. Но не лучше ли "собирать розы" и "обходить шипы"? Это куда более практично и (не побоюсь этого слова) профессионально. В реальном проекте даже 2 дня на "крутой скроллинг" - недопустимая роскошь - пусть скроллинг безумно крут.    

C'est la vie

Совет бесспорно хороший, спасибо, но только не в моей ситуации.

Ладно, давайте пойдем другим путем.  Улыбающийся  Я работаю над проектом, у меня есть требование заказчика - сделать прилипание курсора к слайдеру. Вот захотел он и всё, и его не колышет, сколько времени нужно убить на эту фичу. Я повозился, реализовать нормально не получилось, дальше париться не стал - решил спросить у местных гуру программирования, может кто реализовывал или может кто знает, как это реализуется.

Пока я не увидел каких-то полезных советов, только вопросы вроде "Зачем тебе это нужно?" или "Чего ты хочешь добиться?". Я хочу добиться "мертвого" прилипания курсора к слайдеру и всё.Улыбающийся
Записан
d13mon
Гость
« Ответ #24 : Декабрь 15, 2012, 20:45 »

Могу уточнить: пусть у нас не 1000, а миллион строк.
Коли разговор идёт о таком количестве строк, о каком "прилипании" и вообще юзабельности может идти речь Непонимающий
Надо вообще перепроектировать интерфейс, а не забивать себе голову прокрутками.
Строки - это для примера, я человеку на строках объяснял проблему. У меня прокрутка в графической сцене. Там ничего не перепроектируешь
Записан
mutineer
Гость
« Ответ #25 : Декабрь 15, 2012, 21:08 »

Я хочу добиться "мертвого" прилипания курсора к слайдеру и всё.Улыбающийся

Имхо "мертвого" прилипания ты не получишь - перемещением курсора управляется осью, ты можешь на него среагировать и курсор вернуть назад, но при этом будет видно дергание. Разве что ты скроешь курсор и налепишь на слайдер имитацию, которой будешь управлять уже сам
« Последнее редактирование: Декабрь 15, 2012, 21:10 от mutineer » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #26 : Декабрь 15, 2012, 22:23 »

Пока я не увидел каких-то полезных советов, только вопросы вроде "Зачем тебе это нужно?" или "Чего ты хочешь добиться?". Я хочу добиться "мертвого" прилипания курсора к слайдеру и всё.Улыбающийся
Не стоит "фыркать" Улыбающийся Рано или поздно время все расставляет по своим местам. Ваш первый пост был 11 декабря, минимум 4 дня Вы уже посвятили этой возне. И что-то мне подсказывает что и через неделю, и две ничего реально не изменится. И придется искать другие архитектурные решения, разница (непринципиальная) только в том сколько времени Вы потеряете.

В 3D сцене скроллбаров нет и никогда не было, т.к. их несостоятельность выясняется очень быстро. Но и в 2D они уже давно скорее "дань традиции". Если картинка приличная - скроллбаром ничего путного не получить, используются др средства/приемы навигации которые хорошо известны. Хотите поупираться рогом и доказать обратное - ну флаг Вам в руки. А мы посмотрим (и может напомним)

Как говорится, "Ваше упорство заслуживает лучшего применения"  Улыбающийся
Записан
Bepec
Гость
« Ответ #27 : Декабрь 15, 2012, 23:59 »

Если ты нарисуешь или сделаешь проект, в котором показывается в чем у тебя проблема, я посмотрю. Если не сделаешь или не нарисуешь, тогда не посмотрю.
Записан
d13mon
Гость
« Ответ #28 : Декабрь 17, 2012, 18:53 »

Записал видео,в нем наглядно видно, какой эффект ожидается. Это из коммерческй программы, в которой данная фича была замечена. На чем реализовано - не знаю.  У меня похожий контрол, только на qt, с использованием QGraphicsScene.
http://webfile.ru/6272936
Вес - 584Кб
Записан
d13mon
Гость
« Ответ #29 : Декабрь 17, 2012, 18:58 »

И что-то мне подсказывает что и через неделю, и две ничего реально не изменится. И придется искать другие архитектурные решения, разница (непринципиальная) только в том сколько времени Вы потеряете.
Я рассматриваю с позиции "всё можно реализовать".
В 3D сцене скроллбаров нет и никогда не было, т.к. их несостоятельность выясняется очень быстро. Но и в 2D они уже давно скорее "дань традиции". Если картинка приличная - скроллбаром ничего путного не получить, используются др средства/приемы навигации которые хорошо известны. Хотите поупираться рогом и доказать обратное - ну флаг Вам в руки. А мы посмотрим (и может напомним)
Да, у меня 2D сцена. Постом выше я приаттачил видео, где видна проблема и область применения этой фичи. Прокрутка во вьюпорте - это разве "дань традиции"?)
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 22.