Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ проблема с RCC

Автор: void* 26.6.2008, 12:56

какой-то глюк у меня с RCC: в паке проекта есть папка images, в ней картинка windows.png (сто раз проверял). В файле ресурсов пишу:

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>images\closetab.png</file>
    <file>images\closetab_light.png</file>
    <file>images\closetab_dark.png</file>
    <file>images\console.png</file>
    <file>images\linux.png</file>
    <file>images\windows.png</file>
    <file>images\mac.png</file>
    <file>fonts\COURI.TTF</file>
    </qresource>
</RCC>

при попытке сделать qmake, вылазят ошибки:
RCC: Error in 'Free_DevStudio++.qrc': Cannot find file 'images\windows.png'
RCC: Error in 'Free_DevStudio++.qrc': Cannot find file 'images\windows.png'

что самое интересное - все остальные картинки прописаны абсолютно также, один в один - все работает, а вот именно с этой картинкой такая фигня... хотя более-менее отличается она только размером - 9КБ (у остальных в среднем 3-6КБ)

прошу помочь... :)

Автор: AD 26.6.2008, 13:04

Цитата(void* @ 26.6.2008, 13:56) *
какой-то глюк у меня с RCC: в паке проекта есть папка images, в ней картинка windows.png (сто раз проверял). В файле ресурсов пишу:

что самое интересное - все остальные картинки прописаны абсолютно также, один в один - все работает, а вот именно с этой картинкой такая фигня... хотя более-менее отличается она только размером - 9КБ (у остальных в среднем 3-6КБ)

прошу помочь... :)

1) Насколько я помню, есть ограничение с размером картинок (т.е. типа 32Х32, 16Х16 - я про эти размеры), который можно подгружать. Посмотри какие можно!
2) Назови по-другому, уж очень название распространенное - всякое бывает!

Автор: Litkevich Yuriy 26.6.2008, 16:15

протестируй саму картинку таким кодом:

#include <QtGui>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);

    QWidget    *lbl = new QWidget;
    QPixmap *pix = new QPixmap;
    QPalette pal;

    pix->load("images\windows.png");
    pal.setBrush(lbl->backgroundRole(), QBrush(QPixmap(*pix)));
    lbl->setPalette(pal);
    lbl->resize(pix->size());
    lbl->move(10, 0);
    lbl->setAutoFillBackground(true);
    lbl->show();
    return app.exec();
}

Автор: void* 26.6.2008, 19:01

Цитата(Litkevich Yuriy @ 26.6.2008, 16:15) *
протестируй саму картинку таким кодом:

скомпилировалось, но при запуске ничего не показывается

Автор: Litkevich Yuriy 26.6.2008, 19:11

значит в диспетчере задачь только видно.
Ну это говорит о том, что именно рисунок не загружается, надо по пробывать любые другие рисунки на ней проверить.
Размер файла в данном случае роли не играет (~40к я загружал).

А вообще неплохоб добавить консоль к проекту и собрать в отладочном режиме, вполне возможно что на консоль что-то быдет выведено

Автор: void* 26.6.2008, 19:15

то что в диспетчере торчит я знаю, попробовал другую картинку - заработало, но мне все равно интересно, что такого необычного нашел RCC в этой картинке, может у себя попробуете? вот она - http://img406.imageshack.us/img406/6237/windowsbl1.png

Автор: Litkevich Yuriy 26.6.2008, 19:17

давай для сравнения еще картинку, только с которой нет проблем

Автор: void* 26.6.2008, 19:19

http://img361.imageshack.us/img361/1598/pwindowsjg9.png
та, которую поставил вместо первой, наверно ее и оставлю, но все равно интересно в чем проблема

Автор: Litkevich Yuriy 26.6.2008, 19:29

с первой картинкой у меня все работает, вот скрин:


Автор: void* 26.6.2008, 19:35

становится все интереснее... теперь одно из двух - либо у меня глючный RCC, либо глючные руки :lol:
а версия Qt у тебя какая? 4.4.0?

Автор: Litkevich Yuriy 26.6.2008, 19:50

покажи ту строчку кода где ты обращаешся к этому рисунку, это выглядит так:
:images\windows.png?

есть правило писать пути так:
:images/windows.png

у меня например компилер ругнулся на первую запись:

Цитата
main.cpp:13:11: warning: unknown escape sequence '\w'


чуешь?


работающий тестовый проект с ресурсами:
 icons.zip ( 270.26 килобайт ) : 164

Автор: void* 26.6.2008, 19:56

вот так у меня написано

QIcon(":/images/windows.png")

раньше я кстати на такие грабли уже натыкался, но сейчас точно правильно прописано, перепроверил много раз

Автор: Litkevich Yuriy 26.6.2008, 20:03

Qt'я у меня в подписи, а ты в чем работаешь сейчас?
В лине или виндовозе?

Автор: void* 26.6.2008, 20:19

мастдай, кодовое имя "хрюша", Qt 4.4.0 :)

Автор: Litkevich Yuriy 26.6.2008, 20:33

в 4.4.0 тоже все путем, толькочто перекомпилил.

Ну если тэстовый у тебя не компилится, тоды даже не знаю что сказать.

P.S.
-----
в файле ресурсов слэш правильный забей сразу, пока много кода не написал, а то на лине сюрпризы будут при компиляции.
а еше укажи от текущего каталога:
./images/windows.png

а то в лине начнет от корня искать ;)

Автор: void* 26.6.2008, 20:58

угу, учту, ладно фиг с той картинкой, все равно другая, получше, заработала

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)