LINUX.ORG.RU

Пропала икона в таскбаре

 


0

1

Есть небольшая прожка. как любая уважающая себя прожка, она имеет иконку. Формат png. Грузил её из файла в рантайме.

    //QIcon icon(QCoreApplication::applicationDirPath()+"/img/clarion.png");
    //appIcon = QIcon(QCoreApplication::applicationDirPath()+"/img/clarion.png");
    QIcon icon(":/new/prefix1/clarion.png");
    appIcon = QIcon(":/new/prefix1/clarion.png");

    this->setWindowIcon(appIcon);

Иконка использовалась для отображения в 4-х местах:

1. Заголовок окна

2. Кнопка проги в таскбаре

3. Системный трей

4. Pop-up меню

Везде было нормально. И дернул меня чорд эту иконку поместить в ресурсы, чтобы не таскать картинки вместе с прогой. Ну и поместил. После этого иконка отображается только в 3-х местах. В таскбаре иконка пропала. Просто текст заголовка окна и пустое место там где была иконка. В остальных местах все по-прежнему, отображается.

Вернулся к загрузке из файла - но иконка в таскбаре больше не появилась.

Пробовал использовать другие иконки - безрезультатно. Иконки в таскбаре нету.

По-идее в таскбаре должна автоматом отображаться иконка, которая отображается в заголовке окна.

В чем может быть прикол? Кэш иконок сбрасывал, проект полностью пересобирал с make clean.

Иконка пробовал разных размеров, последняя - 32х32.

★★★

Ответ на: комментарий от bodqhrohro_promo

Годные иконы, дашь сфотографироваться? кстати derlafff не специалист, таких как он арабы и тюрки называют «кассап» (мясник, живодер).

Bruce_Lee ★★
()
Последнее исправление: Bruce_Lee (всего исправлений: 1)

Чтобы не мучать себя и ДЕ переустановками иконок где попало, можно сделать это в одном месте глобально для всего:

int
main(int argc, char *argv[])
{
    QApplication qtApp(argc, argv);
    .....
    QApplication::setWindowIcon(QIcon(PATH_DO_ICON));
    .....
    return exitCode; // exitCode = qtApp.exec();
}
А так же добавить в *.pro (сработает для оффтопика, но не принесет вреда в онтопике):
RC_ICONS = path/do/icon.png

deep-purple ★★★★★
()

УМВР, KDE. Как вариант, могу предложить костыль:

QFile icon(":icon.png");
icon.copy(QDir::homePath() + "/.local/share/pixmaps/icon.png");

SR_team ★★★★★
()
Ответ на: комментарий от SR_team

Пока сделал другой костыль - добавил прогу в KMenu через kmenuedit, там же установил иконку для пункта меню, соответствующего проге. Вместе с иконкой в KMenu появилась иконка и в таскбаре. Т.е. системными средствами, не в рантайме.

Chord ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.