Russian Qt Forum

Qt => Вопросы новичков => Тема начата: ann-joker от Апрель 15, 2012, 07:06



Название: QIcon icon
Отправлено: ann-joker от Апрель 15, 2012, 07:06
не могу добавить icon. вроде прописываю правильно. попробовала даже весь путь написать. но не отображается..

это как бы названия самих иконок (они так названы в папке /images)
Код:
QString iconsPath[16] = {"brush", "elipse","krivaya","lastic", "line", "megasquare", "pencil", "pipetka", "raspylitel", "recelipse",
                          "rectangle", "square", "zoom", "star", "text", "zalivka"};

а это уже добавление на QPushButton (в fore).

Код:
QString s = iconsPath[2 * i + j];
QIcon icon = QIcon(":\"+s+".png");
toolButtons[2 * i + j] = new QPushButton(icon, "");


Название: Re: QIcon icon
Отправлено: alexis031182 от Апрель 15, 2012, 10:49
Попробуйте заменить обратный слэш на нормальный


Название: Re: QIcon icon
Отправлено: iroln от Апрель 15, 2012, 12:50
Иконки лучше хранить в файле ресурсов.


Название: Re: QIcon icon
Отправлено: ann-joker от Апрель 15, 2012, 12:59
iroln, они и так там хранятся.

alexis031182, с любым слэшем не отображается.

код по суть правильный?


Название: Re: QIcon icon
Отправлено: kambala от Апрель 15, 2012, 13:04
1. слэш прямой обязательно
2. в файле ресурсов они точно в корне лежат?
3. попробуй кнопку создавать через new QPushButton(icon, QString(), <и родителя тут наверное всё-таки лучше указать если есть, например this>)


Название: Re: QIcon icon
Отправлено: iroln от Апрель 15, 2012, 13:14
Вот вроде всё работает.


Название: Re: QIcon icon
Отправлено: Javaca от Апрель 15, 2012, 14:39
Составляем файл описания ресурса .qrc

Код:
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>icon.png</file>
</qresource>
</RCC>

Добавляем в .pro

Код:
RESOURCES += icon.qrc

После компиляции иконки загонятся в бинарник, тестировал на Линуксе. В программе имеем доступ по пути.

Код:
QIcon(":/icon.png");


Название: Re: QIcon icon
Отправлено: iroln от Апрель 15, 2012, 14:54
Javaca, у неё есть qrc. Просто скорее всего путь неправильный.