Russian Qt Forum

Qt => Общие вопросы => Тема начата: Zeka13 от Апрель 27, 2012, 17:00



Название: Низкое разрешение иконки в лаунчере Ubuntu[РЕШЕНО]
Отправлено: Zeka13 от Апрель 27, 2012, 17:00
Хочу после запуска приложения видеть иконку на панели запуска, пробовал jpg,png и наконец svg, качество иконки почему-то очень низкое
Вот скрин
(http://storage9.static.itmages.ru/i/12/0427/s_1335535134_9427056_69ab759405.png) (http://itmages.ru/image/view/499053/69ab7594)

делаю так    w.setWindowIcon(QIcon(":/images/spin.svg"));

Как повысить качество?
Заранее спасибо за ответы


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: ecspertiza от Апрель 27, 2012, 17:07
по хорошему задать формат ico со всеми возможными вариантами начиная с 8х8 заканчивая 512х512, тогда будет подобрана оптимальная иконка.


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 27, 2012, 17:14
вы мне предлагаете юзать .ico под Linux?

нет уж, спасибо!

Чем плох svg?


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: navrocky от Апрель 27, 2012, 17:18
по хорошему задать формат ico

ico. ага под убунту...

Для топик стартера: сделай свою икону в большем разрешении и в формате png.
Помимо этого еще есть тонкости:

1) можно набить QIcon картинками разного разрешения (обычно 16x16, 24x24, 32x32, 48x, 128x), тогда будет подобран оптимальный размер при показе на тулбаре.
2) если делаешь делаешь пакет с приложением, то икону для ярлыка .desktop так-же надо заготовить в нескольких разрешениях и положить в соответствии с размерами в /usr/share/icons/hicolor/NxN/apps/your_icon.png


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: navrocky от Апрель 27, 2012, 17:20
Чем плох svg?

Ни чем не плох. Но в svg также указан размер "холста" так сказать. В редакторе задай его больше, тогда икона будет чётче. Обычно svg иконы делаются в размерах 128 или 256.


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 27, 2012, 17:38
тот же метод в винде работает сносно, сейчас буду пробовать ваши советы

(http://storage7.static.itmages.ru/i/12/0427/s_1335537442_5152930_2d47aeff15.png) (http://itmages.ru/image/view/499087/2d47aeff)


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 27, 2012, 18:04
увеличил до 256, без изменений

(http://storage9.static.itmages.ru/i/12/0427/s_1335539068_8241868_8bd8664624.png) (http://itmages.ru/image/view/499098/8bd86646)


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 27, 2012, 18:14
измерил иконки на лаунчере, они 55x55, свою сделал в png 55x55, опять таки ничего не изменилось


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Alex Custov от Апрель 27, 2012, 18:49
иконки вполне возможно берутся не из свойств окна, а из /usr/share/icons, как выше написали.


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: ecspertiza от Апрель 27, 2012, 19:57
Вот меня тут с ico запинали , а чем он плох ? В своем проекте юзаю и накиких проблем не имею, может просто не наткунлся на камни, дык расскажите :) Юзаю как под виндой так и под линуксом.


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 27, 2012, 20:12
Alex Custov, каким таким магическим образом это происходит в моём случае?

Цитировать
Вот меня тут с ico запинали , а чем он плох ?
ICO (Windows icon) — формат хранения значков файлов в Microsoft Windows

это моветон на мой ввзгялд


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: ecspertiza от Апрель 27, 2012, 20:23
Согласен если код не кроссплатфоренный , если кроссплатформа то какая разница, тем более что ико себя не плохо ведет. Правдо незнаю как у автора, поэтому навязыать не буду ))))


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Alex Custov от Апрель 27, 2012, 20:29
Alex Custov, каким таким магическим образом это происходит в моём случае?

Я имею ввиду, что он возможно сперва ищет в /usr/share/icons, и если ничего не находит, берёт из свойств окна первую попавшуюся. Сложно сказать, это надо знать логику поиска иконок самого лаунчера.


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 27, 2012, 20:40
Вы вообще о чём!?  ???

у меня явно указано, что использовать за иконку, ничего он нигде не ищёт!

В винде работает, в Ubuntu качество плохое, я пытаюсь выяснить почему так!


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Serr500 от Апрель 28, 2012, 12:34
делаю так    w.setWindowIcon(QIcon(":/images/spin.svg"));

у меня явно указано, что использовать за иконку, ничего он нигде не ищёт!
В винде работает, в Ubuntu качество плохое, я пытаюсь выяснить почему так!

Это не для лончера иконка, а для окна.

http://doc.qt.nokia.com/4.7.1/appicon.html#setting-the-application-icon-on-common-linux-desktops (http://doc.qt.nokia.com/4.7.1/appicon.html#setting-the-application-icon-on-common-linux-desktops)

Цитировать
GNOME

Application icons are stored within a standard system-wide directory containing architecture-independent files. This location can be determined by using gnome-config, for example by typing the following in a terminal window:

 gnome-config --datadir

The path printed on stdout refers to a location that should contain a directory called pixmaps; the directory structure within the pixmaps directory is described in the Icon Theme Specification.

If you are developing exclusively for GNOME, you may wish to use the standard set of GNU Build Tools, also described in the relevant section of the GTK+/Gnome Application Development book. This ensures that your icons are installed in the appropriate locations for GNOME.

The GNOME developer website is at http://developer.gnome.org/.


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 28, 2012, 14:58
Цитировать
лончера
что это такое?

может вы хотяб скриншоты посмотрите, а не будете умничать?


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: ecspertiza от Апрель 28, 2012, 15:20
QApplication::setWindowIcon(QIcon) ?


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: GreatSnake от Апрель 28, 2012, 15:34
что это такое?
Правильное произношение твоего "лаунчер" (http://lingvo.yandex.ru/launcher/%D1%81%20%D0%B0%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B3%D0%BE/LingvoUniversal/) )

Цитировать
может вы хотяб скриншоты посмотрите, а не будете умничать?
Это ты тут пытаешься "умничать". Serr500 всё верно сказал.


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Serr500 от Апрель 28, 2012, 15:42
может вы хотяб скриншоты посмотрите, а не будете умничать?
Может, Вы хотя б ответ почитаете, а не будете умничать?  ;)


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 28, 2012, 16:03
ecspertiza, я так и делаю, читайте вопрос пожалуйста!

Serr500, я то прочёл, а вы скриншоты посмотрели?

GreatSnake, вот вы так и называйте, думаю в ваших кругах вас поймут
где я умничал? вы посмотрите скрины сначала


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: ecspertiza от Апрель 28, 2012, 16:17
ecspertiza, я так и делаю, читайте вопрос пожалуйста!

читаю

делаю так    w.setWindowIcon(QIcon(":/images/spin.svg"));

включаю телепата w - QWidget , зри что я пишу юзать нужно QApplication::setWindowIcon() разницу видишь ?


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 28, 2012, 16:20
спасибо
переделал, но всё без изменений

Код
C++ (Qt)
#include <QtGui/QApplication>
 
#include "mainwindow.h"
#include "maincount.h"
#include "values.h"
 
#include <QTranslator>
#include <QLibraryInfo>
#include <QFont>
#include <QFontDatabase>
 
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
 
   //загрузка фона, нужного для приложения
QFontDatabase::addApplicationFont(":/fonts/Ubuntu-L.ttf");
 
   //установка перевода текста на виджетах в зависимости от языка системы
QTranslator qtTranslator;
qtTranslator.load("qt_ru",QLibraryInfo::location(QLibraryInfo::TranslationsPath));
a.installTranslator(&qtTranslator);
a.setWindowIcon(QIcon(":/images/spin.svg"));
 
 
MainWindow w;
//w.setWindowIcon(QIcon(":/images/spin.svg"));
w.moveToCenter();
w.show();
return a.exec();
}


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: ecspertiza от Апрель 28, 2012, 16:32
остается только одно, убедиться что в ресурсах лежит правильный файл. Остальное все должно быть хорошо.


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Serr500 от Апрель 28, 2012, 17:58
я то прочёл, а вы скриншоты посмотрели?
Посмотрел. И что мешает сделать так, как написано в документации?


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Serr500 от Апрель 28, 2012, 19:09
А вот теперь я скажу, как надо делать.

1) Иконка, которую присваивает метод setWindowIcon система зачем-то масштабирует. Предполагаю, что она подгоняет её к размеру заголовка окна. Затем лончер берёт из заголовка эту масштабированную иконку.

2) Я создал проект с именем icotest, в котором кроме главного окна (унаследовано от QWidget) ничего нет. После запуска в лончере в качестве иконки появился вопросительный знак. Далее я создал файл
Цитировать
/usr/share/applications/icotest.desktop
следующего содержания:
Цитировать
[Desktop Entry]
Type=Application
Exec=icotest
Icon=qtcreator
После чего запустил программу. В лончере появилась иконка QtCreator'а.

3) Специально для проверки запихал в ресурсы иконку разрешением 256*256 и сделал setWindowIcon в конструкторе главного окна. Иконка в лончере не изменилась. Убрал .desktop-файл, иконка поменялась на иконку из ресурсов и качество этой иконки испортилось. Если присваивать иконку через QApplication::setWindowIcon, происходит то же самое.

P.S. Иконку QtCreator взял потому, что лениво было свою лепить во всех разрешениях. Лежат иконки в каталогах с именами типа
Цитировать
/usr/share/icons/hicolor/NxN/apps

P.P.S. Эксперимент производился на Ubuntu 12.04 x64, Qtcreator и Qt - из комплектных пакетов.


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 29, 2012, 16:43
да вы прям кэп, вопрос то, как сделать без этого файла!

Видимо никак...


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Serr500 от Апрель 29, 2012, 16:49
вопрос то, как сделать без этого файла!
Такого условия в ваших сообщениях не было.


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 29, 2012, 16:59
ладно, извиняюсь

просто я думал это и так понятно, мне же придётся в пакет упаковывать тогда...


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Serr500 от Апрель 29, 2012, 17:08
мне же придётся в пакет упаковывать тогда...
Такова концепция Unity...  :(

Посмотрите на вот эту статью: http://habrahabr.ru/post/135443/ (http://habrahabr.ru/post/135443/). Там товарищ что-то делал с иконками в панелях задач для разных ОС, в том числе и для Ubuntu с Unity. Может, что-то удастся вытащить.


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 29, 2012, 18:02
Цитировать
Такова концепция Unity...

наверное больше Gnome

всё равно спасибо


Название: Re: Низкое разрешение иконки в лаунчере Ubuntu
Отправлено: Zeka13 от Апрель 30, 2012, 17:46
выполняю скрипт перед запуском

Код
Bash
#!/bin/bash
gksu cp plot4.desktop /usr/share/applications
gksu cp spin.svg /usr/share/icons/hicolor/scalable/apps
exit 0