Russian Qt Forum
Ноябрь 24, 2024, 08:09
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Как сделать прокрутку правильно?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как сделать прокрутку правильно? (Прочитано 6612 раз)
karonator
Гость
Как сделать прокрутку правильно?
«
:
Октябрь 08, 2010, 22:51 »
Доброе время суток всем.
К сожалению, вопрос мой несколько запутанный,но я постараюсь ясно сформулировать.
Итак у меня есть главное окно. На нём постоянно будет находиться около 40 лейблов, причём в два слоя. То есть два слоя в каждом по 40 лейблов, один над другим. Всего лейблов много. Вопрос звучит так: если делать прокрутку вручную, перехватывая событие вручную, будут ли лаги?
Просто qscrollarea тут не исполтзуешь, так как к нему вроде как не прикрутить плавную прокрутку и задний фон, и нерпсположить элементы в два слоя. Вот отсюда и вопрос, если делать скроллинг ручками, можно ли сделать плавный и без лагов.
Заранее всем спасибо за ответы, извините если чегото не понимаю, в куте несколько дней всего.
Записан
shirushizo
Гость
Re: Как сделать прокрутку правильно?
«
Ответ #1 :
Октябрь 09, 2010, 09:08 »
Про "два слоя в каждом по 40 лейблов, один над другим" ничего не понял...
Есть класс QStackedWidget в нем хранится несколько QWidget* и показывается только 1. Можно сделать, например, 10 стеков по 4 (и сколько там надо) QLabel* и сделать по страничную прокрукту - показывать соответствующие лейблы.
Хотя выйгрыша по памяти все равно не будет.
Записан
karonator
Гость
Re: Как сделать прокрутку правильно?
«
Ответ #2 :
Октябрь 09, 2010, 10:57 »
Вот я попробовал нарисовать пример:
То есть два слоя. По сути в нижнем слое будут иконки, а в верхнем полупрозрачные рамочки.
Можно ли такое рисовать лейблами и прокручивать ручками?
Как сделать чтоб прокрутка была плавной?
Ну...посоветуйте пожалуйста как быть, я в QT пока совсем зелёный.
В итоге должно получиться нечто подобное:
Только у каждой книжки рамочка, представьте. Айпад ни при чём, просто картинка удачная.
Записан
Makss
Гость
Re: Как сделать прокрутку правильно?
«
Ответ #3 :
Октябрь 09, 2010, 11:46 »
лудше сами рисуйте, слишком уж тяжело - это по количеству лейблов
Записан
karonator
Гость
Re: Как сделать прокрутку правильно?
«
Ответ #4 :
Октябрь 09, 2010, 14:57 »
Самому рисовать?
Через OpenGL то есть?
Расскажите поподробнее пожалуйста.
Записан
andrew.k
Гость
Re: Как сделать прокрутку правильно?
«
Ответ #5 :
Октябрь 09, 2010, 18:49 »
Мне вот интересно, а что это за "слои" такие? как можно лабелы положить "в два слоя"
Записан
andrew.k
Гость
Re: Как сделать прокрутку правильно?
«
Ответ #6 :
Октябрь 09, 2010, 19:02 »
насчет реализации, мне кажется проще всего, тем более для новичка, надо не опенГЛ мучать, а элементарно взять за основу QTreeView и сделать собственную отрисовку айтемов, ну и для всего контрола. И прокрутку даже не надо будет программировать.
а как делать тень, немножко обсуждалось тут:
http://www.prog.org.ru/topic_13524_0.html
правда эффект тени появился в 4.6, но врядли это вообще пригодится
Записан
whirlwind
Гость
Re: Как сделать прокрутку правильно?
«
Ответ #7 :
Октябрь 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 должно бы хватить, если железо не сильно старое/специфичное
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Как сделать прокрутку правильно?
«
Ответ #8 :
Октябрь 11, 2010, 09:07 »
Для отрисовки теней используй QGraphicsDropShadowEffect, тогда и слои городить не придётся)
Записан
Qt 5.11/4.8.7 (X11/Win)
Sergey B.
Программист
Offline
Сообщений: 544
Re: Как сделать прокрутку правильно?
«
Ответ #9 :
Октябрь 11, 2010, 10:00 »
Цитата: whirlwind от Октябрь 09, 2010, 20:40
http://doc.qt.nokia.com/4.7/graphicsview.html#graphicsview
А у него можно сделать примерно так:
Код:
setViewport(new QGlWidget());
и будет всё через openGL рисоваться.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...