Russian Qt Forum

Qt => Мультимедиа => Тема начата: arTik от Июнь 22, 2005, 15:22



Название: embedded pictures
Отправлено: arTik от Июнь 22, 2005, 15:22
Всем приветик...

Проблема следующая... создал каталог images и положил нужные png-файлы...

Есть кнопки и т.п. где используются эти картинки.
В pro-файле они все описаны, например

Код:
IMAGES	= images/search.png \
images/users.png \
images/update.png \
images/tools.png \
images/exit.png \

В самом коде который генерится, обращение к картинкам идет через fromMimeSource, например:

Код:
pushButtonFilterUpdate = new QPushButton( groupBoxFilter, "pushButtonFilterUpdate" );
pushButtonFilterUpdate->setIconSet( QIconSet( QPixmap::fromMimeSource( "update.png" ) ) );



Но почему-то когда компилю проект, то у меня нет этих картинок, т.е. они не встраиваются в код.... Но по докам все должно работать... помогите, в чем ошибка ?


Название: embedded pictures
Отправлено: arTik от Июнь 22, 2005, 15:29
Нашел еще одну фишку, если самому в коде поменять вместо:

Код:
pushButtonFilterUpdate->setIconSet( QIconSet( QPixmap::fromMimeSource( "update.png" ) ) );


поставить

Код:
pushButtonFilterUpdate->setIconSet( QIconSet( QPixmap::fromMimeSource( "images/update.png" ) ) );


то прога будет все показывать, если есть каталог images и там есть картинки... а как все в exe-шник встроить ???


Название: embedded pictures
Отправлено: Sergeich от Июнь 22, 2005, 16:11
Вообще-то все должно работать. Можешь попробовать написать в прошке
Код:

IMAGES += ./images/update.png \
...

Если надо встроить картинки в dll воспользуйся qembed (см. Assistant)


Название: embedded pictures
Отправлено: arTik от Июнь 22, 2005, 16:24
Цитата: "Sergeich"
Вообще-то все должно работать. Можешь попробовать написать в прошке
Код:

IMAGES += ./images/update.png \
...


Попробовал, не заработало... точно также все :(

Цитата: "Sergeich"

Если надо встроить картинки в dll воспользуйся qembed (см. Assistant)


Да нет... в dll мне не надо... мне нужно просто, чтобы это все было в exe-шнике...


Название: embedded pictures
Отправлено: Sergeich от Июнь 22, 2005, 16:33
у тебя в каталоге проекта должен быть файл qmake_image_collection.cpp, а нем примерно следующий кусок кода
Код:
// images\update.png
static const unsigned char image_12_data[] = {
    0x00,0x00,0x07,0x90,0x78,0x9c,0x95,0x95,0x7d,0x4c,0x93,0x57,0x14,0xc6,
    0xcb,0x50,0x41,0x90,0x80,0x50,0x44,0xb0,0x08,0xed,0x60,0x52,0xac,0x54,

у тебя он есть?


Название: embedded pictures
Отправлено: arTik от Июнь 22, 2005, 16:36
Вот как раз на trolltech.com я нашел эту инфу, что должен быть такой файл... но у меня его нет... как он создается и чем ???


Название: embedded pictures
Отправлено: Sergeich от Июнь 22, 2005, 16:45
Файл создается qmake, он в свою очередь вызывает uic -embed ...
Попробуй полность перекомпилять проект ( с qmake )


Название: embedded pictures
Отправлено: arTik от Июнь 22, 2005, 17:41
Цитата: "Sergeich"
Файл создается qmake, он в свою очередь вызывает uic -embed ...
Попробуй полность перекомпилять проект ( с qmake )


Я просто через сам VS 2003 .NET компилю... поэтому не знаю, что он там указывает...

Попробовать руками скомпилить ??? Правда никогда этого не делал, т.к. я начинающий...


Название: embedded pictures
Отправлено: Sergeich от Июнь 22, 2005, 17:59
Заходишь в каталог с проектом ( где лежит про-файл ) через FAR или cmd, и запускаешь
 nmake clean
 qmake
 nmake


Название: embedded pictures
Отправлено: arTik от Июнь 22, 2005, 18:05
Вот что вышло:

Код:
F:\Programming\qt\QCiscoFW>qmake

F:\Programming\qt\QCiscoFW>nmake

Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

        C:\Qt\3.3.4\bin\uic.exe mainform.ui -o mainform.h
        C:\Qt\3.3.4\bin\uic.exe mainform.ui -i mainform.h -o mainform.cpp
        C:\Qt\3.3.4\bin\moc.exe mainform.h -o moc_mainform.cpp
        cl -c -nologo -Zm200 -W3 -w34100 -w34189 -MD -O1  -DUNICODE -DWIN32 -DQT
_DLL -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -I"C:\Qt\3.3.4\include" -I"." -I"C:\Qt\3.
3.4\mkspecs\win32-msvc.net" -Fo @C:\DOCUME~1\art\LOCALS~1\Temp\nm830.tmp
mainform.cpp
moc_mainform.cpp
Generating Code...
        link /NOLOGO /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:
winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll /SUBSYSTEM:WINDOWS /LIB
PATH:"C:\Qt\3.3.4\lib" /OUT:QCiscoFW.exe @C:\DOCUME~1\art\LOCALS~1\Temp\nm831.tm
p
LINK : warning LNK4199: /DELAYLOAD:comdlg32.dll ignored; no imports found from c
omdlg32.dll
LINK : warning LNK4199: /DELAYLOAD:oleaut32.dll ignored; no imports found from o
leaut32.dll
LINK : warning LNK4199: /DELAYLOAD:winmm.dll ignored; no imports found from winm
m.dll
LINK : warning LNK4199: /DELAYLOAD:wsock32.dll ignored; no imports found from ws
ock32.dll
LINK : warning LNK4199: /DELAYLOAD:winspool.dll ignored; no imports found from w
inspool.dll
qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol _main ref
erenced in function _WinMain@16
QCiscoFW.exe : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: 'link' : return code '0x460'
Stop.

F:\Programming\qt\QCiscoFW>


Однако файлы qmake_image_collection.cpp и qmake_image_collection.obj появились... но exe-файл не создался :(


Название: embedded pictures
Отправлено: Sergeich от Июнь 22, 2005, 18:13
Скорей всего у тебя что-то не то с прошкой. Вышли заценить ( про-файл )


Название: embedded pictures
Отправлено: arTik от Июнь 22, 2005, 18:15
Вот весь мой pro-файл...

Код:
TEMPLATE	= app
LANGUAGE = C++

CONFIG += qt warn_on

FORMS = mainform.ui

IMAGES += images/qciscofw.png \
images/search.png \
images/users.png \
images/update.png \
images/tools.png \
images/exit.png \
images/icq_connecting.mng

# ----------------------------------------------------------
# Project generated by QMsNet v1.0.0
#    Template used:    Basic Application
#    Template version: 1.1
# ----------------------------------------------------------

TARGET         = QCiscoFW

unix {
   UI_DIR      = .ui
   MOC_DIR     = .moc
   OBJECTS_DIR = .obj
}




Название: embedded pictures
Отправлено: Sergeich от Июнь 22, 2005, 18:34
Странно... все сроде должно работать... а если попробовать заново сгенерить VS проект из прошки?


Название: embedded pictures
Отправлено: arTik от Июнь 22, 2005, 18:37
Цитата: "Sergeich"
Странно... все сроде должно работать... а если попробовать заново сгенерить VS проект из прошки?


А это как ??? И я неправильно понял Вас ?


Название: embedded pictures
Отправлено: arTik от Июнь 22, 2005, 18:45
Может быть при установке Qt нужно какую-то галочку поставить или что-то в этом роде ???


Название: embedded pictures
Отправлено: Sergeich от Июнь 22, 2005, 18:55
Кутешка при установке интегрируется в VS ( по крайней мере в версиях 3.3.х, а может и в более ранних ) В VS должен появится соответвующий тулбар.


Название: embedded pictures
Отправлено: arTik от Июнь 22, 2005, 19:02
Похоже глюк VS 2003 .NET

Взял создал пустой Solution. Потом открыл pro-файл.. и тут же все картинки появились как ресурсы... Скомпилил и все ОК :)

Спасибо Огромное за помощь...


Название: embedded pictures
Отправлено: Zmey от Июль 11, 2005, 09:35
Цитата: "arTik"
Похоже глюк VS 2003 .NET

Взял создал пустой Solution. Потом открыл pro-файл.. и тут же все картинки появились как ресурсы... Скомпилил и все ОК :)

Спасибо Огромное за помощь...


Я тоже создавал проект на VS (правда на шестом). Потом когда понадобилось сунуть в прогу картинки - создал .pro файл (qmake -project), написал нужные строки в .pro файл, а потом создал проект VS из .pro файла (qmake -tp vc hello.pro). И дальше программил как и раньше :)