Форум сайта python.su
Хочу сделать, чтобы в QMenuBar иконки QAction были 16х16, а в QToolBar - 24х24. Сделал *.ICO файл с несколькими слоями соответствующих размеров. В Qt Designer всё отображается как надо, но после компиляции в *.py получается, что и меню, и тулбар используют только первый слой ICO-файла.
Прошу помощи с правильным решением данной задачки. Нагуглил одну ссылку 2005 года, в которой говорилось, что на тот момент решения не было, может быть сейчас что-то изменилось?
Прикреплённый файлы:
different_ico_sizes.jpg (43,5 KБ)
Офлайн
Vittorioпосмотрите в .py чего там прописано по поводу иконок.
но после компиляции в *.py получается, что и меню, и тулбар используют только первый слой ICO-файла.
[code python][/code]
Отредактировано PEHDOM (Июль 29, 2021 13:08:17)
Офлайн
Нашёл, как исправить, единственное не знаю, насколько это грамотно.
Когда в Qt Designer создавал в “Редакторе действий” действие и привязывал значок посредством “Choose File…”, в компилированном *.py это выглядело как
icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap("UIs\\../icons/copy.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
icon = QtGui.QIcon("UIs\\../icons/copy.ico")
Отредактировано Vittorio (Июль 29, 2021 15:57:05)
Офлайн
> Сделал *.ICO файл с несколькими слоями
Неужели этим старьём ещё кто то пользуется?
> Хочу сделать, чтобы в QMenuBar иконки QAction были 16х16, а в QToolBar - 24х24
У QMenuBar и QToolBar должны быть определены методы setIconSize вот ими и выставляй размер.
Отредактировано Rodegast (Июль 29, 2021 17:42:50)
Офлайн
RodegastУ QMenuBar из коробки нет метода setIconSize (PyQt 5.15.4). Его надо самостоятельно писать?
У QMenuBar и QToolBar должны быть определены методы setIconSize вот ими и выставляй размер.
Офлайн
Офлайн
В итоге всё решилось проще. Qt Designer совместно с pyuic5 генерят следующие участки кода для иконок действий:
icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap("copy.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
icon = QtGui.QIcon("copy.ico")
Офлайн
> А есть какой-то более новый способ сделать разные версии иконок под их разный размер?
Qt умеет хорошо масштабировать изображения. Разные иконки под разный размер уже не делают.
Офлайн