Название: Как установить одинаковый размер иконок (16x16 px) сразу для всего приложения? Отправлено: xintrea от Декабря 04, 2014, 21:27 Мне нужно иметь единую точку управления размером иконок, используемых в приложении.
Однако в настоящий момент у меня в коде после каждого создания каждого тулбара прописано: Код: QSize toolBarIconSize(16,16); В связи с чем два вопроса: 1. Хотелось бы избавиться от setIconSize() возле каждого места создания тулбара или отдельной кнопки, и задать размер иконок только один раз в приложении. Можно ли это сделать? 2. Так как приложение кроссплатформенное (Linux, Win, Android) и используется на мониторах с разным размером пикселя, физические размеры иконки в 16x16 пикселей могут быть разными: и ~2 mm (ретина) и ~8 mm (обычный старенький монитор). Как установить размер иконок не в пикселях, а в миллиметрах? Или в каких-нибудь других величинах (пунктах, pt), привязанных к физическому миру? Название: Re: Как установить одинаковый размер иконок (16x16 px) сразу для всего приложения? Отправлено: kuzulis от Декабря 04, 2014, 21:56 использовать css?
Название: Re: Как установить одинаковый размер иконок (16x16 px) сразу для всего приложения? Отправлено: xintrea от Декабря 05, 2014, 00:25 1. Ну и как через qt-шный CSS изменить размеры всех ИКОНОК?
2. В qt-шном css отсутствуют миллиметры. И у меня не получилось работать с pt - тоже не работают, хотя в документации написано что пункты должны поддерживаться. Работают только пиксели. Название: Re: Как установить одинаковый размер иконок (16x16 px) сразу для всего приложения? Отправлено: vregess от Декабря 05, 2014, 08:31 Digia говорит, что начиная с 5-ой версии Qt device independent pixels (именно в них указываются размеры).
Если задача стоит в выборе другой иконки для ретины, то можно просто создавать 2 версии иконок: Код: foo.png а далее просто Код (это должно работать в одной из последних 4.8, т.к. портировали из 5-ой). Подробности тут: Retina display support for Mac OS, iOS and X11 (http://blog.qt.digia.com/blog/2013/04/25/retina-display-support-for-mac-os-ios-and-x11/). Название: Re: Как установить одинаковый размер иконок (16x16 px) сразу для всего приложения? Отправлено: xintrea от Декабря 05, 2014, 13:51 У меня все иконки векторные в SVG. А ты про PNG говоришь.
Задача простая - установить размер иконок в приложении один раз где-нибудь в инициализации. Как это сделать? Название: Re: Как установить одинаковый размер иконок (16x16 px) сразу для всего приложения? Отправлено: kuzulis от Декабря 05, 2014, 14:13 Код
не работает? Можно попробовать подставить pt вместо px и посмотреть. Название: Re: Как установить одинаковый размер иконок (16x16 px) сразу для всего приложения? Отправлено: xintrea от Декабря 05, 2014, 14:42 Код
не работает? Можно попробовать подставить pt вместо px и посмотреть. Работает. Для QToolButton. Для других элементов отдельно нужно указывать. Но смотри вопрос №2. В пикселях на разных экранах получаем очень разные результаты. В QSS нет поддержки mm, а в pt почему-то не работает. Название: Re: Как установить одинаковый размер иконок (16x16 px) сразу для всего приложения? Отправлено: vregess от Декабря 05, 2014, 16:09 А ты пробовал qApp->setAttribute(Qt::AA_UseHighDpiPixmaps) ?
Цитировать Make QIcon::pixmap() generate high-dpi pixmaps that can be larger than the requested size. Such pixmaps will have devicePixelRatio set to a value higher than 1. По идее QIcon на ретине должен создать из SVG изображение большего размера. Ну а так, встроенного способа вроде нет. Только самому городить, если это не поможет. |