Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: SABROG от Июль 16, 2007, 11:55



Название: Векторные иконки (SVG)
Отправлено: SABROG от Июль 16, 2007, 11:55
Никто не пробывал в своих программах использовать векторные иконки (svg) для тулбара ? Или в качестве шкурки для контролов ?


Название: Векторные иконки (SVG)
Отправлено: troorl от Июль 16, 2007, 12:03
Я пробовал. А что, есть какие-то проблемы?


Название: Векторные иконки (SVG)
Отправлено: SABROG от Июль 16, 2007, 12:08
Приходилось переопределять paint ?
Использовал QIconEnginePluginV2 ?
Где достать бесплатную коллекцию SVG иконок не знаешь ?
Пример не подкинешь ?


Название: Векторные иконки (SVG)
Отправлено: troorl от Июль 16, 2007, 12:37
Использовал для тулбара, так что
1) нет (зачем?)
2) нет
3) http://kde-look.org там достаточно наборов векторных значков
4) пример? да вроде ничем не отличается от использования png-значков


Название: Векторные иконки (SVG)
Отправлено: SABROG от Июль 16, 2007, 13:29
Спасибо, но ведь разница в том, что QIcon не может подгрузить .svg файл, ибо его нет в списке поддерживаемых форматов, а значит надо юзать QPixmap:

Код:


BMP
Windows Bitmap
GIF
Graphic Interchange Format (optional)
JPG
Joint Photographic Experts Group
JPEG
Joint Photographic Experts Group
MNG
Multiple-image Network Graphics
PNG
Portable Network Graphics
PBM
Portable Bitmap
PGM
Portable Graymap
PPM
Portable Pixmap
TIFF
Tagged Image File Format
XBM
X11 Bitmap
XPM
X11 Pixmap


Порылся в инете немного, нашел этот код. Работает или нет не знаю, но это точно не обычный способ ;)

Код:

{
QToolButton *toolButton = new QToolButton(0);

QPixmap pixmap(24, 24);
QPainter painter(&pixmap);
painter.setBackgroundMode(Qt::OpaqueMode);
QSvgRenderer renderer (QString("newTab.svg"));
renderer.render (&painter);
QIcon newTabIcon(pixmap);

toolButton->setIcon (newTabIcon);
toolButton->setIconSize (QSize(24,24));
tabs.setCornerWidget (toolButton, Qt::BottomLeftCorner);
}


Название: Векторные иконки (SVG)
Отправлено: troorl от Июль 16, 2007, 13:41
Может версия Qt старая? На 4.2.3 точно работает...
Цитировать
someAct = new QAction(tr("&bla-bla..."), this);
someAct->setIcon(QIcon(":/img/someSvg.svg"));

toolbar = new QToolBar(tr("Main toolbar"), this);
toolbar->setIconSize(QSize(48, 48 ));
toolbar->addAction(someAct);


Название: Векторные иконки (SVG)
Отправлено: Sergeich от Июль 16, 2007, 13:49
Может QT += SVG в прошке забыл?


Название: Векторные иконки (SVG)
Отправлено: SABROG от Июль 16, 2007, 17:17
Ну я еще ничего не пробывал. Просто разведываю.

А вот моя первая работа в inkscape, ушло наверно часа 4 на нее. Нарисовал ручками свой мобильный телефон Nokia 2600. :)

http://filebeam.com/55c897e9fa460dd5be77ab198c24f401


Название: Векторные иконки (SVG)
Отправлено: SABROG от Июль 19, 2007, 15:08
Не знаю, у меня ничего не кажет. Png кажет, а Svg не кажет:

Код:

QStandardItem *rootItem = new QStandardItem(QIcon(QLatin1String("emblem-system.svg")),tRoot.name);


Название: Векторные иконки (SVG)
Отправлено: Sergeich от Июль 21, 2007, 16:32
В дизайнере SVG-иконки кажет?


Название: Векторные иконки (SVG)
Отправлено: troorl от Июль 21, 2007, 21:01
Цитата: "Sergeich"
Может QT += SVG в прошке забыл?

А это кстати не обязательно указывать, как выяснилось :)


Название: Векторные иконки (SVG)
Отправлено: SABROG от Июль 22, 2007, 00:22
Цитата: "Sergeich"
В дизайнере SVG-иконки кажет?


Не кажет. Не понимает он этого формата, даже за картинку не считает.


Название: Векторные иконки (SVG)
Отправлено: Sergeich от Июль 22, 2007, 15:04
Цитата: "SABROG"

Не кажет. Не понимает он этого формата, даже за картинку не считает.
Гмм... странно... у меня Qt 4.2.3 под хрень SP2, захожу в дизайнер создаю MainWindow, добавляю Action, устанавливаю для него в качестве иконки SVG файл, и все нормально показывается и в тулбаре и в меню. Для QLabel SVG файл как pixmap тоже задается без проблем. Может че-то со сборкой кути намудрил?


Название: Векторные иконки (SVG)
Отправлено: SABROG от Июль 22, 2007, 21:22
Пример qt-win-opensource-src-4.3.1-snapshot-20070711\examples\painting\svgviewer
пашет, а в дизайнере .svg файлы не возможно выбрать когда открывается директория поиска Pixmapa для QLabel, а когда из ресурсов хочу указать, то строки с .svg файлами серые и кнопка ОК серая (disabled).


Название: Векторные иконки (SVG)
Отправлено: Sergeich от Июль 22, 2007, 22:28
Посмотрел исходники - у меня поддержка SVG для иконок и QImage собирается как плагины. См. %QTDIR%/src/plugins/iconengines  и %QTDIR%/src/plugins/imageformats


Название: Векторные иконки (SVG)
Отправлено: SABROG от Июль 22, 2007, 22:36
У меня там тоже есть dllки в iconengines - qsvg4.dll
в imagesformats - gif, mng, jpeg, tiff, svg.

Может из-за этого ?
(http://img505.imageshack.us/img505/2945/failedpluginshd8.th.jpg) (http://img505.imageshack.us/my.php?image=failedpluginshd8.jpg)