Есть QStackedWidget с разными видами. Виды в основном из кнопочек, групбоксов(ничего тяжелого нет) состоят, вид которых берется из темы (qss-файл). При переключении видов проявляется заметный(пару секунд) лаг, перед перерисовкой нового вида. Причем лаг возникает только при первом переключении, потом нормально. Та же фигня если вид из QSplitter'a переходит из невидимого состояния в видимое первый раз — тоже лаг.
Кто-то сталкивался? В чем причина? Раньше(когда вид контролов не берется из qss-файла) не нарывался на такое, те есть ощущение, что это из-за применения stylesheet'a возникает.
Спасибо
Здравствуйте, HolyNick, Вы писали:
HN>Есть QStackedWidget с разными видами. Виды в основном из кнопочек, групбоксов(ничего тяжелого нет) состоят, вид которых берется из темы (qss-файл). При переключении видов проявляется заметный(пару секунд) лаг, перед перерисовкой нового вида. Причем лаг возникает только при первом переключении, потом нормально. Та же фигня если вид из QSplitter'a переходит из невидимого состояния в видимое первый раз — тоже лаг. HN>Кто-то сталкивался? В чем причина? Раньше(когда вид контролов не берется из qss-файла) не нарывался на такое, те есть ощущение, что это из-за применения stylesheet'a возникает. HN>Спасибо
Было бы интересно — посмотреть код из Вашего примера. Код, воспроизводящий описанную выше проблему. Это бы помогло и решить её.
Здравствуйте, HolyNick, Вы писали:
HN>Есть QStackedWidget с разными видами. Виды в основном из кнопочек, групбоксов(ничего тяжелого нет) состоят, вид которых берется из темы (qss-файл). При переключении видов проявляется заметный(пару секунд) лаг, перед перерисовкой нового вида. Причем лаг возникает только при первом переключении, потом нормально. Та же фигня если вид из QSplitter'a переходит из невидимого состояния в видимое первый раз — тоже лаг. HN>Кто-то сталкивался? В чем причина? Раньше(когда вид контролов не берется из qss-файла) не нарывался на такое, те есть ощущение, что это из-за применения stylesheet'a возникает. HN>Спасибо
qss довольно медленная штука, использующая ленивую загрузку. Могу лишь предложить костыль — при запуске приложения пробежаться по виджетам и прорисовать их явно. (Можно невидимое окно прорисовать в QPaintDevice).
Здравствуйте, HolyNick, Вы писали:
HN>Иконки у меня в виде svg-шек, похоже они так долго подгружаются, когда вид впервые появляется на экране.
Какие svg используются? На svg tiny у меня нормально интерфейс отрисовывается без тормозов, заголовок svg приблизительно такой
Здравствуйте, 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 у иконок.