[QT] Problem z ikonami w wersji Release

0

Witam,

Mam następujący problem. Mam program, w którym korzystam z ikon w ToolBar i wstawiam je za pomocą pliku zasobów .qrc. Tworząc wersję Release tego programu i chcąc go uruchomić na innym komputerze, ikony znikają. Nie wiem w jaki sposób je dołączyć do wersji release, aby były widoczne w programie. Słyszałem że trzeba utworzyć jakiś plik .rcc ale nie mogę nigdzie znaleźć sensownego wytłumaczenia.

Z góry dzięki za odpowiedź.

0

jak wczytujesz te ikony? Bo zapewne tu masz błąd i zamiast wczytywać ikony z zasobów, wczytujesz je z dysku!
Zasoby Qt-kowe stają się częścią binarki, więc to raczej nie jest problem z zasobami. Zapomnij o pliku .rcc, bo stracisz na przenośności kodu.

0

Plik zasobów icons.qrc

<RCC>
    <qresource prefix="/">
        <file>images/About.ico</file>
        <file>images/Add.ico</file>
        <file>images/Delete.ico</file>
        <file>images/Exit.ico</file>
        <file>images/New.ico</file>
        <file>images/Open.ico</file>
        <file>images/Save.ico</file>
        <file>images/SaveAs.ico</file>
        <file>images/Code.ico</file>
    </qresource>
</RCC>

Mam dodany ten plik w pliku projektu:

RESOURCES = icons.qrc

A tak ustawiam ikony:

exitAction->setIcon(QIcon(":/images/Exit.ico"));

0

wygląda poprawnie, więc nie mam pojęcia co zrobiłeś źle.

0

A możliwe jest że ikonki nie wyświetlają się przez to że mam jakąś starą bibliotekę dołączoną do pliku .exe na innym komputerze ? Mam pliki:

QtCore4.dll wersja 4.6.3.0
QtGui4.dll wersja 4.6.3.0
libgcc_s_dw2-1.dll
mingwm10.dll

Skąd można pobrać zaufane .dll które będą działać w 100%, bo ja ściągam z jakiś przypadkowych serwisów. Natomiast QtCore4.dll i QtGui4.dll wziąłem z katalogu qt/2010.04/qt/bin/ .

0

Qt zapewnia kompatybilność binarną.
W każdym razie gdyby się okazało, że masz problemy z wersjami dll Qt wyświetliłby odpowiedni komunikat, a program by się nie uruchomił.
Moje pytanie, używasz może asercji? Może w kodzie zrobiłeś jakiś błąd typu wstawienie, istotnego kodu w QASSERT lub assert.

1 użytkowników online, w tym zalogowanych: 0, gości: 1