Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt] 4.5.2 Не отображаются иконки окон... 
:(
    Опции темы
bvn13
Дата 24.9.2009, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 26.5.2009

Репутация: нет
Всего: нет



Прочитав предварительно вот это: http://forum.vingrad.ru/topic-236795.html

написал вот так:

Код


#include <QtPlugin>
QT_BEGIN_NAMESPASE
Q_IMPORT_PLUGIN (qico) //[color=red]Вот здесь выдает ошибку (код ошибки ниже)[/color]
QT_END_NAMESPASE


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    a.setWindowIcon(QIcon("c:\\C++\\Qt\\TrayHotkey\\TrayHotkey\\Resources\\icons\\systray.ico"));
    TrayHotkey w;



Получил ошибку:

Код

1>.\main.cpp(7) : error C2144: syntax error : 'int' should be preceded by ';'
1>.\main.cpp(7) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>.\main.cpp(7) : error C2143: syntax error : missing ';' before '*'
1>.\main.cpp(7) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>.\main.cpp(7) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>.\main.cpp(7) : error C2664: 'qRegisterStaticPluginInstanceFunction' : cannot convert parameter 1 from 'int *(__cdecl *)(void)' to 'QtPluginInstanceFunction'
1>        None of the functions with this name in scope match the target type
1>.\main.cpp(11) : error C2144: syntax error : 'int' should be preceded by ';'
1>.\main.cpp(11) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int


И на код: 

Код

    tray = new QSystemTrayIcon(QIcon("c:\\C++\\Qt\\TrayHotkey\\TrayHotkey\\Resources\\icons\\systray.ico"), this);


реакции ноль - при сворачивании место под иконку в систрее освобождается, но там - пусто!

В чем проблема? Неправильно скомпилировал Qt? Компилировал командой (как в документации): configure -platform mingw32-msvc (как-то так вроде там написано)...

Добавлено через 6 минут и 53 секунды
Кстати, а вот здесь: http://vingrad.ru/blogs/sabrog/2008/01/11/...em-okno-v-trey/ не написано, что надо подключать какие-то библиотеки....
PM MAIL   Вверх
bvn13
Дата 25.9.2009, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 26.5.2009

Репутация: нет
Всего: нет



Так, вроде разобрался, что ICO файлы не катят для QIcon. Остался непонятным вопрос с программным заданием иконок. Когда в дизайнере указываю конкретный файл или ресурс-иконку, то у MainWindow она встает нормально. А вот когда в систрей ручками пишу:

Код

tray = new QSystemTrayIcon(QIcon(":/icons/systray.png"), this);


то не взлетает.... и самое что интересно: никаких ошибок. Полет нормальный.... хз... Ладно, копаю дальше, жду советов.
PM MAIL   Вверх
SABROG
Дата 25.9.2009, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(bvn13 @  24.9.2009,  23:41 Найти цитируемый пост)
не написано, что надо подключать какие-то библиотеки.... 


Потому, что для .png формата не нужны плагины. Попробуй тем же макаром присвоить картинку в QLabel. Проверь размеры, может быть Qt не может преобразовать картинку в 16x16 (Win*)/ 22x22 (X11).


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
bvn13
Дата 28.9.2009, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 26.5.2009

Репутация: нет
Всего: нет



Цитата(SABROG @ 25.9.2009,  14:08)
Потому, что для .png формата не нужны плагины. Попробуй тем же макаром присвоить картинку в QLabel. Проверь размеры, может быть Qt не может преобразовать картинку в 16x16 (Win*)/ 22x22 (X11).

я разобрался частично. На MainWindow повесил иконку с помощью дизайнера. А вот на QSystemTray не могу повесить нормально. Если задаю полный путь к картинке, то все ок, а вот с относительным - труба... никак не соображу, как написать.

Код

tray = new QSystemTrayIcon(QIcon(":/icons/systray.png"), this);


Вот такой код не прокатывает (может, не туда картинку кладу)... Как правильно оформлять относительные пути?
PM MAIL   Вверх
KL7
  Дата 28.9.2009, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 7.12.2008
Где: Minsk City

Репутация: 2
Всего: 2



Цитата(bvn13 @  28.9.2009,  11:32 Найти цитируемый пост)
Как правильно оформлять относительные пути? 

а если не секрет, как файл ресурсов выглядит? там ошибки быть не может?

у меня следующее:
код
Код

    QSystemTrayIcon *trayIcon = new QSystemTrayIcon(this);
    trayIcon->setIcon(QIcon(":/img/icon.png"));
    trayIcon->show();


ресурсы
Код

<RCC>
    <qresource>
        <file>img/icon.png</file>
    </qresource>
</RCC>


и файл находится в папке img, которая лежит рядом с pro-файлом... т.е. относительно pro-файла путь к изображению именно "img/icon.png"

у Вас так же?
PM MAIL ICQ   Вверх
bvn13
Дата 28.9.2009, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 26.5.2009

Репутация: нет
Всего: нет



Цитата(KL7 @ 28.9.2009,  19:13)
а если не секрет, как файл ресурсов выглядит? там ошибки быть не может?

Вряд ли там ошибка... он составлялся конструктором (программой-помощником) в поставке Qt... Вот он:

Код

<RCC>
    <qresource prefix="/icons" >
        <file alias="SysTray.png" >Resources/icons/systray.png</file>
    </qresource>
</RCC>


Структура моих каталогов (проект создавался в MSVS 2008):

- TrayHotkey(каталог)
-- TrayHotkey(каталог)
-- TrayHotkey.pro
-- TrayHotkey.qrc
-- Resources(каталог)
--- icons(каталог)
---- systray.png

-- Debug(каталог)
--- TrayHotkey.exe

я пробовал класть каталог ICONS и в DEBUG, рядом с ЕХЕ-шником, и рядом с PRO-файлом.... бестолку :( Какая-то фигня... И с учетом описания относительный путь я пишу кажись правильно... не пойму, в чем косяк...

Добавлено через 9 минут и 47 секунд
Сделал вот такой файл ресурсов и все заработало... (надолго ли? smile )

Код

<RCC>
    <qresource prefix="/icons" >
        <file>systray.png</file>
    </qresource>
</RCC>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0462 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.