Лаг в QStackedWidget и не только
От: HolyNick  
Дата: 20.01.22 10:56
Оценка:
Есть QStackedWidget с разными видами. Виды в основном из кнопочек, групбоксов(ничего тяжелого нет) состоят, вид которых берется из темы (qss-файл). При переключении видов проявляется заметный(пару секунд) лаг, перед перерисовкой нового вида. Причем лаг возникает только при первом переключении, потом нормально. Та же фигня если вид из QSplitter'a переходит из невидимого состояния в видимое первый раз — тоже лаг.
Кто-то сталкивался? В чем причина? Раньше(когда вид контролов не берется из qss-файла) не нарывался на такое, те есть ощущение, что это из-за применения stylesheet'a возникает.
Спасибо
Отредактировано 20.01.2022 10:57 HolyNick . Предыдущая версия .
Re: Лаг в QStackedWidget и не только
От: AlexGin Беларусь  
Дата: 24.01.22 11:59
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>Есть QStackedWidget с разными видами. Виды в основном из кнопочек, групбоксов(ничего тяжелого нет) состоят, вид которых берется из темы (qss-файл). При переключении видов проявляется заметный(пару секунд) лаг, перед перерисовкой нового вида. Причем лаг возникает только при первом переключении, потом нормально. Та же фигня если вид из QSplitter'a переходит из невидимого состояния в видимое первый раз — тоже лаг.

HN>Кто-то сталкивался? В чем причина? Раньше(когда вид контролов не берется из qss-файла) не нарывался на такое, те есть ощущение, что это из-за применения stylesheet'a возникает.
HN>Спасибо

Было бы интересно — посмотреть код из Вашего примера. Код, воспроизводящий описанную выше проблему. Это бы помогло и решить её.
Re: Лаг в QStackedWidget и не только
От: SaZ  
Дата: 24.01.22 12:10
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>Есть QStackedWidget с разными видами. Виды в основном из кнопочек, групбоксов(ничего тяжелого нет) состоят, вид которых берется из темы (qss-файл). При переключении видов проявляется заметный(пару секунд) лаг, перед перерисовкой нового вида. Причем лаг возникает только при первом переключении, потом нормально. Та же фигня если вид из QSplitter'a переходит из невидимого состояния в видимое первый раз — тоже лаг.

HN>Кто-то сталкивался? В чем причина? Раньше(когда вид контролов не берется из qss-файла) не нарывался на такое, те есть ощущение, что это из-за применения stylesheet'a возникает.
HN>Спасибо

qss довольно медленная штука, использующая ленивую загрузку. Могу лишь предложить костыль — при запуске приложения пробежаться по виджетам и прорисовать их явно. (Можно невидимое окно прорисовать в QPaintDevice).
Re: Лаг в QStackedWidget и не только
От: HolyNick  
Дата: 26.01.22 11:43
Оценка: 2 (1)
Иконки у меня в виде svg-шек, похоже они так долго подгружаются, когда вид впервые появляется на экране.
Re[2]: Лаг в QStackedWidget и не только
От: Igore Россия  
Дата: 08.02.22 06:23
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN>Иконки у меня в виде svg-шек, похоже они так долго подгружаются, когда вид впервые появляется на экране.

Какие svg используются? На svg tiny у меня нормально интерфейс отрисовывается без тормозов, заголовок svg приблизительно такой

<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" overflow="visible" xml:space="preserve">

Re[3]: Лаг в QStackedWidget и не только
От: HolyNick  
Дата: 09.02.22 11:42
Оценка:
baseProfile="tiny" не использовал, а что он дает?
PS: иконки у меня простые без градиентов одноцветные.
Отредактировано 09.02.2022 12:54 HolyNick . Предыдущая версия . Еще …
Отредактировано 09.02.2022 12:54 HolyNick . Предыдущая версия .
Re[4]: Лаг в QStackedWidget и не только
От: Igore Россия  
Дата: 10.02.22 06:29
Оценка:
Здравствуйте, HolyNick, Вы писали:

HN> baseProfile="tiny" не использовал, а что он дает?

HN>PS: иконки у меня простые без градиентов одноцветные.
У меня в Qt 5.6(QML), не tiny svg вообще не грузятся, это урезанное подмножество svg которое быстрее грузится/парсится, плюс я бы еще на размер svg посмотрел, может там внутри svg просто жирная png в base64 лежит, бывало такое при не правильном экспорте из Adobe, самая большая svg у меня сейчас 8 кб, обычно 2.
P.S. Иконки и должны быть монохромными, их потом в ui можно в правильный цвет покрасить.
P.P.S. Еще были какие то проблемы если не задать width, height, viewBox у иконок.
Отредактировано 10.02.2022 6:32 Igore . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.