Название: Как сделать прокрутку правильно? Отправлено: karonator от Октябрь 08, 2010, 22:51 Доброе время суток всем.
К сожалению, вопрос мой несколько запутанный,но я постараюсь ясно сформулировать. Итак у меня есть главное окно. На нём постоянно будет находиться около 40 лейблов, причём в два слоя. То есть два слоя в каждом по 40 лейблов, один над другим. Всего лейблов много. Вопрос звучит так: если делать прокрутку вручную, перехватывая событие вручную, будут ли лаги? Просто qscrollarea тут не исполтзуешь, так как к нему вроде как не прикрутить плавную прокрутку и задний фон, и нерпсположить элементы в два слоя. Вот отсюда и вопрос, если делать скроллинг ручками, можно ли сделать плавный и без лагов. Заранее всем спасибо за ответы, извините если чегото не понимаю, в куте несколько дней всего. Название: Re: Как сделать прокрутку правильно? Отправлено: shirushizo от Октябрь 09, 2010, 09:08 Про "два слоя в каждом по 40 лейблов, один над другим" ничего не понял...
Есть класс QStackedWidget в нем хранится несколько QWidget* и показывается только 1. Можно сделать, например, 10 стеков по 4 (и сколько там надо) QLabel* и сделать по страничную прокрукту - показывать соответствующие лейблы. Хотя выйгрыша по памяти все равно не будет. Название: Re: Как сделать прокрутку правильно? Отправлено: karonator от Октябрь 09, 2010, 10:57 Вот я попробовал нарисовать пример:
(http://s49.radikal.ru/i124/1010/c0/9be908e4ec37.jpg) То есть два слоя. По сути в нижнем слое будут иконки, а в верхнем полупрозрачные рамочки. Можно ли такое рисовать лейблами и прокручивать ручками? Как сделать чтоб прокрутка была плавной? Ну...посоветуйте пожалуйста как быть, я в QT пока совсем зелёный. :) В итоге должно получиться нечто подобное: (http://indesignsecrets.com/wp-content/uploads/2010/01/ibooks.jpg) Только у каждой книжки рамочка, представьте. Айпад ни при чём, просто картинка удачная. Название: Re: Как сделать прокрутку правильно? Отправлено: Makss от Октябрь 09, 2010, 11:46 лудше сами рисуйте, слишком уж тяжело - это по количеству лейблов
Название: Re: Как сделать прокрутку правильно? Отправлено: karonator от Октябрь 09, 2010, 14:57 Самому рисовать?
Через OpenGL то есть? Расскажите поподробнее пожалуйста. Название: Re: Как сделать прокрутку правильно? Отправлено: andrew.k от Октябрь 09, 2010, 18:49 Мне вот интересно, а что это за "слои" такие? как можно лабелы положить "в два слоя" :)
Название: Re: Как сделать прокрутку правильно? Отправлено: andrew.k от Октябрь 09, 2010, 19:02 насчет реализации, мне кажется проще всего, тем более для новичка, надо не опенГЛ мучать, а элементарно взять за основу QTreeView и сделать собственную отрисовку айтемов, ну и для всего контрола. И прокрутку даже не надо будет программировать.
а как делать тень, немножко обсуждалось тут: http://www.prog.org.ru/topic_13524_0.html правда эффект тени появился в 4.6, но врядли это вообще пригодится :) Название: Re: Как сделать прокрутку правильно? Отправлено: whirlwind от Октябрь 09, 2010, 20:40 есть QGraphicsView, про него в описании прям так и сказано
Graphics View provides a surface for managing and interacting with a large number of custom-made 2D graphical items, and a view widget for visualizing the items, with support for zooming and rotation. http://doc.qt.nokia.com/4.7/graphicsview.html#graphicsview Хотя вообще странно, как по-моему, обычного scroll area должно бы хватить, если железо не сильно старое/специфичное Название: Re: Как сделать прокрутку правильно? Отправлено: GreatSnake от Октябрь 11, 2010, 09:07 Для отрисовки теней используй QGraphicsDropShadowEffect, тогда и слои городить не придётся)
Название: Re: Как сделать прокрутку правильно? Отправлено: Sergey B. от Октябрь 11, 2010, 10:00 http://doc.qt.nokia.com/4.7/graphicsview.html#graphicsview А у него можно сделать примерно так: Код: setViewport(new QGlWidget()); |