Russian Qt Forum
Октябрь 02, 2024, 17:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Векторные иконки (SVG)  (Прочитано 14606 раз)
SABROG
Гость
« : Июль 16, 2007, 11:55 »

Никто не пробывал в своих программах использовать векторные иконки (svg) для тулбара ? Или в качестве шкурки для контролов ?
Записан
troorl
Гость
« Ответ #1 : Июль 16, 2007, 12:03 »

Я пробовал. А что, есть какие-то проблемы?
Записан
SABROG
Гость
« Ответ #2 : Июль 16, 2007, 12:08 »

Приходилось переопределять paint ?
Использовал QIconEnginePluginV2 ?
Где достать бесплатную коллекцию SVG иконок не знаешь ?
Пример не подкинешь ?
Записан
troorl
Гость
« Ответ #3 : Июль 16, 2007, 12:37 »

Использовал для тулбара, так что
1) нет (зачем?)
2) нет
3) http://kde-look.org там достаточно наборов векторных значков
4) пример? да вроде ничем не отличается от использования png-значков
Записан
SABROG
Гость
« Ответ #4 : Июль 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);
}
Записан
troorl
Гость
« Ответ #5 : Июль 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);
Записан
Sergeich
Гость
« Ответ #6 : Июль 16, 2007, 13:49 »

Может QT += SVG в прошке забыл?
Записан
SABROG
Гость
« Ответ #7 : Июль 16, 2007, 17:17 »

Ну я еще ничего не пробывал. Просто разведываю.

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

http://filebeam.com/55c897e9fa460dd5be77ab198c24f401
Записан
SABROG
Гость
« Ответ #8 : Июль 19, 2007, 15:08 »

Не знаю, у меня ничего не кажет. Png кажет, а Svg не кажет:

Код:

QStandardItem *rootItem = new QStandardItem(QIcon(QLatin1String("emblem-system.svg")),tRoot.name);
Записан
Sergeich
Гость
« Ответ #9 : Июль 21, 2007, 16:32 »

В дизайнере SVG-иконки кажет?
Записан
troorl
Гость
« Ответ #10 : Июль 21, 2007, 21:01 »

Цитата: "Sergeich"
Может QT += SVG в прошке забыл?

А это кстати не обязательно указывать, как выяснилось Улыбающийся
Записан
SABROG
Гость
« Ответ #11 : Июль 22, 2007, 00:22 »

Цитата: "Sergeich"
В дизайнере SVG-иконки кажет?


Не кажет. Не понимает он этого формата, даже за картинку не считает.
Записан
Sergeich
Гость
« Ответ #12 : Июль 22, 2007, 15:04 »

Цитата: "SABROG"

Не кажет. Не понимает он этого формата, даже за картинку не считает.
Гмм... странно... у меня Qt 4.2.3 под хрень SP2, захожу в дизайнер создаю MainWindow, добавляю Action, устанавливаю для него в качестве иконки SVG файл, и все нормально показывается и в тулбаре и в меню. Для QLabel SVG файл как pixmap тоже задается без проблем. Может че-то со сборкой кути намудрил?
Записан
SABROG
Гость
« Ответ #13 : Июль 22, 2007, 21:22 »

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

Посмотрел исходники - у меня поддержка SVG для иконок и QImage собирается как плагины. См. %QTDIR%/src/plugins/iconengines  и %QTDIR%/src/plugins/imageformats
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.128 секунд. Запросов: 21.