Увы, при более-менее нагруженном UI (например, таббар с градиентами) будет дико тормозить. Непрактично. И, главное, это не чистый qss.
Виндовые кнопки, к примеру, отрисовывается с анимациями, но это платформозависимое решение, там под капотом winapi дёргается. И это тоже не чистый qss.
Я тут попробовал еще раз перечитать то, что написал автор. Как я понял, он взял исходники некоторых тем из Qt5 и скомпилил их в свой пакет в слегка видоизменённом стиле, опустив при этом вопросы лицензирования. При этом слегка упустив то, что Qt может собираться статически. До изучения системы плагинов Qt автор пока ещё не дошел.
Я не знаю, что такое “стили .so”. Поясните, что вы имеете в виду? Обычно под .so понимают расширение для динамических библиотек в линуксе. Это никак не связано с Qt и темами.
В документации Qt примеров достаточно. Впрочем, как я уже написал, вы просто вызвали setStyle :)
Попробуйте сделать анимации на qss. Единственный способ, который я знаю, это использование QPropertyAnimation с ручным переопределением обработчика paint event. Но это уже не qss.
Если вы попробуете разработку с QML, то возвращаться на виджеты не захотите. Ну разве что вы любите мешать UI код и бизнес логику. И документации предостаточно. Попробуйте открыть официальную документацию по Qt. Там про стили и QML написано даже больше, чем про виджеты.
Ок. Вы показали как загрузить стиль. По сути вы описали два метода из документации по Qt - перечислить стили, установить стиль.
И да, заголовок про ненужность QML - слишком громкий. Можете на qss и виджетах сделать переливающийся фон у кнопки? На QML это пару строк кода и будет с большего делаться на GPU, на чистом qss вы не сделаете вообще никаких анимаций.
Вы просто немного поиграли со стилями, слово «шаблон» в контексте вашей статьи мне непонятно. Сразу хочется у вас спросить, а вы исходники Qt в той части где идёт работа с qss открывали?
В целом, поддержка css (qss) в Qt - это чистого вида натягивание совы на глобус. Причём в кулуарах одной из конференций мне довелось об этом поговорить с разработчиками. Просто в то время это был тренд и не было нормальных альтернатив для быстрого прототипирования стилизованных окон.
На текущем проекте (энтерпрайз, куча легаси) у нас обвязка, которая на основе json генерирует qss со всеми нужными стилями. И я задолбался подпирать костылями то, что где-то изначально упустили. Наиболее классическая ситуация - это когда разработчики виджетов не совсем аккуратно реализуют поддержку setFocus, setParent внутри каких либо обработчиков и повреждается внутренний кэш qstylesheet (там вектор указателей на QObject) - и в процессе смены стилей в лучшем случае всё дико тормозит, а в худшем - access violation из-за обращений к уже удалённым объектам.
Мой личный вывод - если вы всё ещё сидите на виджетах, то наследуйтесь от QStyle либо QProxyStyle и ручками, под каждую платформу, пилите нужный стиль. Программно, без всяких там qss. Будет намного более предсказуемо и быстро.
Прямо таки решается куда редиректнуть по время сканирования? Что за фантазии и причём тут вообще QR коды (?кликбейт), если речь о сервисах по сокращению ссылок?
Вот вроде и неплохо написано, но когда идут фразы что “SmallTalk / Simula используют объектную модель взятую из Java / Objective-C“, то сразу напрашивается вопрос - всё вышеописанное это творческие рассуждения автора, или там всё таки что-то взято за основу? Каким образом Smalltalk мог что-то взять из Java, если он появился на четверть века раньше?
Вы не понимаете, это другое. Вы попали в целевую аудиторию рекламируемой игры: мужчина в возрасте 18-65 лет, проживающий на территории бывшего СССР (более детальный таргетинг ВК не осилит). Это очень узкая, точная и релевантная выборка. Вы 20 лет не играли, но вдруг именно сейчас вам это должно понравиться. Ведь согласно исследованиям, по прошествии 20 лет без игр, 89% человек хотят поиграть снова
«Ещё один туториал по гиту»… который уступает документации в интернете.
Почему этот текст оценен как «сложный»?
Не рассмотрена тема merge vs rebase. Не рассмотрена такая фича как worktree. Про .gitignore очень поверхностно, и да, он может быть расположен иерархически (в любом каталоге), а не только в текущем. По LFS, сабмодули почти ничего не написано. И тп.
Так всё-таки, расскажите, почему текст пестрит иконками? У вас хотели для них настроены или вы каждый раз делаете автозамену? Просто такой подход - это очень яркий признак того, что текст сгенерирован llm.
В статье нет ни слова о главном - Java версия майнкрафта имеет огромнейшее преимущество за счёт возможности моддинга без лишних кросс-платформенных заморочек. И именно за счёт хардкорных и хорошо продуманных модов (типа gregtech) майнкрафт действительно интересен.
Главное ведь не новость интересную написать, а KPI выполнить.
Хабру очень не хватает фильтра новостей по авторам. Или авторов, которые хотя бы минимально разбираются в том, про что пишут. Вот и получаем то такие «новости», то истории про релизы минорных версий софта. Впрочем, Хабр тоже можно понять, если сделать такой фильтр, то туда улетит половина информационной службы.
Что насчёт несканкционированного использования? Например, купили лицензию на 100 рабочих мест, а она будет использоваться на 200. Как вы это проверите без лицензионных серверов?
Повсеместно используем std::string в очень большом, с элементами легаси кросс-платформенном десктопном софте. Периодически делаем профилирование. Да, иногда строки становятся узким местом, но настолько редко что хватает точечных оптимизаций через string_view. В 99% случаев проблемы с перформансом из-за других вещей.
Ещё одно ошибочное утверждение. Вы путаете Qt с Electron, Sciter и прочими браузерными поделками.
WebView может быть интегрирован в QtQuick, а не наоборот.
Подскажите, какой у вас опыт работы с Qt и в частности с QtQuick? Изучали ли вы основы? Знаете ли вы какие модули и плагины есть в Qt и какие между ними зависимости?
Вы в курсе что QtQuick отлично работает во всяких там HMI, вплоть до bare metal на слабых железках и делает это очень шустро?
Увы, при более-менее нагруженном UI (например, таббар с градиентами) будет дико тормозить. Непрактично. И, главное, это не чистый qss.
Виндовые кнопки, к примеру, отрисовывается с анимациями, но это платформозависимое решение, там под капотом winapi дёргается. И это тоже не чистый qss.
Я тут попробовал еще раз перечитать то, что написал автор. Как я понял, он взял исходники некоторых тем из Qt5 и скомпилил их в свой пакет в слегка видоизменённом стиле, опустив при этом вопросы лицензирования. При этом слегка упустив то, что Qt может собираться статически. До изучения системы плагинов Qt автор пока ещё не дошел.
Я даже не знаю, как прокомментировать ваш поток сознания :)
Для этого уже давно есть QtQuick / QML.
Я не знаю, что такое “стили .so”. Поясните, что вы имеете в виду? Обычно под .so понимают расширение для динамических библиотек в линуксе. Это никак не связано с Qt и темами.
В документации Qt примеров достаточно. Впрочем, как я уже написал, вы просто вызвали setStyle :)
Попробуйте сделать анимации на qss. Единственный способ, который я знаю, это использование QPropertyAnimation с ручным переопределением обработчика paint event. Но это уже не qss.
Если вы попробуете разработку с QML, то возвращаться на виджеты не захотите. Ну разве что вы любите мешать UI код и бизнес логику. И документации предостаточно. Попробуйте открыть официальную документацию по Qt. Там про стили и QML написано даже больше, чем про виджеты.
Ждём ваших результатов.
Ок. Вы показали как загрузить стиль. По сути вы описали два метода из документации по Qt - перечислить стили, установить стиль.
И да, заголовок про ненужность QML - слишком громкий. Можете на qss и виджетах сделать переливающийся фон у кнопки? На QML это пару строк кода и будет с большего делаться на GPU, на чистом qss вы не сделаете вообще никаких анимаций.
Вы просто немного поиграли со стилями, слово «шаблон» в контексте вашей статьи мне непонятно. Сразу хочется у вас спросить, а вы исходники Qt в той части где идёт работа с qss открывали?
В целом, поддержка css (qss) в Qt - это чистого вида натягивание совы на глобус. Причём в кулуарах одной из конференций мне довелось об этом поговорить с разработчиками. Просто в то время это был тренд и не было нормальных альтернатив для быстрого прототипирования стилизованных окон.
На текущем проекте (энтерпрайз, куча легаси) у нас обвязка, которая на основе json генерирует qss со всеми нужными стилями. И я задолбался подпирать костылями то, что где-то изначально упустили. Наиболее классическая ситуация - это когда разработчики виджетов не совсем аккуратно реализуют поддержку setFocus, setParent внутри каких либо обработчиков и повреждается внутренний кэш qstylesheet (там вектор указателей на QObject) - и в процессе смены стилей в лучшем случае всё дико тормозит, а в худшем - access violation из-за обращений к уже удалённым объектам.
Мой личный вывод - если вы всё ещё сидите на виджетах, то наследуйтесь от QStyle либо QProxyStyle и ручками, под каждую платформу, пилите нужный стиль. Программно, без всяких там qss. Будет намного более предсказуемо и быстро.
Прямо таки решается куда редиректнуть по время сканирования? Что за фантазии и причём тут вообще QR коды (?кликбейт), если речь о сервисах по сокращению ссылок?
Вот вроде и неплохо написано, но когда идут фразы что “SmallTalk / Simula используют объектную модель взятую из Java / Objective-C“, то сразу напрашивается вопрос - всё вышеописанное это творческие рассуждения автора, или там всё таки что-то взято за основу? Каким образом Smalltalk мог что-то взять из Java, если он появился на четверть века раньше?
Вы не понимаете, это другое. Вы попали в целевую аудиторию рекламируемой игры: мужчина в возрасте 18-65 лет, проживающий на территории бывшего СССР (более детальный таргетинг ВК не осилит). Это очень узкая, точная и релевантная выборка. Вы 20 лет не играли, но вдруг именно сейчас вам это должно понравиться. Ведь согласно исследованиям, по прошествии 20 лет без игр, 89% человек хотят поиграть снова
/sarcasm
«Ещё один туториал по гиту»… который уступает документации в интернете.
Почему этот текст оценен как «сложный»?
Не рассмотрена тема merge vs rebase. Не рассмотрена такая фича как worktree. Про .gitignore очень поверхностно, и да, он может быть расположен иерархически (в любом каталоге), а не только в текущем. По LFS, сабмодули почти ничего не написано. И тп.
Да, я почитал. Правда уже после того как написал комментарий. В других статьях автора радует большее разнообразие :)
Но я рад что был неправ и встретил исключение из правил.
Так всё-таки, расскажите, почему текст пестрит иконками? У вас хотели для них настроены или вы каждый раз делаете автозамену? Просто такой подход - это очень яркий признак того, что текст сгенерирован llm.
В статье нет ни слова о главном - Java версия майнкрафта имеет огромнейшее преимущество за счёт возможности моддинга без лишних кросс-платформенных заморочек. И именно за счёт хардкорных и хорошо продуманных модов (типа gregtech) майнкрафт действительно интересен.
Главное ведь не новость интересную написать, а KPI выполнить.
Хабру очень не хватает фильтра новостей по авторам. Или авторов, которые хотя бы минимально разбираются в том, про что пишут. Вот и получаем то такие «новости», то истории про релизы минорных версий софта. Впрочем, Хабр тоже можно понять, если сделать такой фильтр, то туда улетит половина информационной службы.
Спасибо вам за развернутый комментарий.
А можно ссылку на сам «стандарт»? По тексту статьи непонятно, о каком новом стандарте из заголовка идёт речь.
Краткое содержание: решили хранить ключи в облаке, но не перманентные, а раз в сутки их обновлять.
Что насчёт несканкционированного использования? Например, купили лицензию на 100 рабочих мест, а она будет использоваться на 200. Как вы это проверите без лицензионных серверов?
Перебор с ненормативной лексикой, вам не кажется?
Повсеместно используем std::string в очень большом, с элементами легаси кросс-платформенном десктопном софте. Периодически делаем профилирование. Да, иногда строки становятся узким местом, но настолько редко что хватает точечных оптимизаций через string_view. В 99% случаев проблемы с перформансом из-за других вещей.
Ещё одно ошибочное утверждение. Вы путаете Qt с Electron, Sciter и прочими браузерными поделками.
WebView может быть интегрирован в QtQuick, а не наоборот.
Подскажите, какой у вас опыт работы с Qt и в частности с QtQuick? Изучали ли вы основы? Знаете ли вы какие модули и плагины есть в Qt и какие между ними зависимости?
Вы в курсе что QtQuick отлично работает во всяких там HMI, вплоть до bare metal на слабых железках и делает это очень шустро?
Что вы имеете в виду под «немало ресурсов для выполнения»?
У программистов уходит больше времени на написание кода? Или вы хотите сказать что рантайм QtQuick тяжелее?
Если второе, то вы неправы. QtQuick работает куда быстрее, особенно на сложных сценах и высоких dpi за счёт аппаратного ускорения рендеринга.