Każdy program może posiadać własną wbudowaną bibliotekę plików np. graficznych, tekstowych czy multimedialnych, które mogą wchodzić w skład samego programu. Taki zbiór nazywa się resources zasobami. W celu utworzenia pliku zasobów należ w oknie drzewa projektu kliknąć pozycję Dodaj nowy, co spowoduje pojawienie się okna Nowy plik, w którym bez chwili zwłoki i z najdzikszą rozkoszą należy zaznaczyć pozycje z poniższego rysunku.
Rys. 1
Widok okna Nowy plik z zaznaczoną opcją Plik z zasobami Qt
Po kliknięciu przycisku Dalej należy wpisać nazwę pliku i wskazać jego położenie.
Rys. 2
Widok okna Plik z zasobami Qt - wybór położenia i nazwy pliku
Po kliknięciu przycisku Dalej pojawi się część okna z podsumowaniem, w którym nie należy zmieniać absolutnie niczego i kliknąć przycisk Zakończ.
Rys. 3
Widok okna Plik z zasobami Qt - Podsumowanie
Teraz należy w oknie listy plików projektu powinien pojawić się folder o nazwie Zasoby w nim to znaleźć można plik zasobów resource.qrc, który należy kliknąć dwukrotnie by zobaczyć widok edytora zasobów. W edytorze tym należy kliknąć przycisk Dodaj i wybrać z rozwijanej jego listy pozycję Dodaj przedrostek i ustawić pole przedrostek na wartość /images tak jak widoczne jest to na rysunku poniżej.
Rys. 4
Qt Creator - widok edytora zasobów z utworzonym przedrostkiem
Teraz do tak utworzonego przedrostka dodam dwa moje pliki: i poprzez kliknięcie przycisku Dodaj i wybranie pozycji Pliki. Po tej czynności moje zasoby wyglądają mniej więcej tak jak na poniższym rysunku.
Rys. 5
Wycinek okna zasobów z dodanymi grafikami
Ważne jest aby zapisać zmiany wciskając kombinację Ctrl + s, by w dalszej części można było wykorzystać dodane grafiki w programie. Teraz warto przejść do trybu graficznego i dodać do menu jeszcze jedną pozycję: Zapisz a następnie w Edytorze akcji kliknąć dwukrotnie na akcji actionOpen, by po chwili ujrzeć okno Modyfikuj akcję, w której to po kliknięciu przycisku ... pokaże się okno Wybierz zasób. To z jego poziomu można a nawet trzeba odwołać się do elementów zawartych w pliku zasobów.
Rys. 6
Okno modyfikacji akcji
W ten sposób do menu przypisuje się element graficzny czego efekt można zobaczyć na poniższym rysunku.
Rys. 7
Qt Creator - efekt dodania do menu plików graficznych pochodzących z zasobów
Możliwe jest również dodanie do paska narzędziowego przycisków, poprzez złapanie akcji znajdujących się w Edytorze akcji i przeciągnięcie ich na pasek znajdujący się pod menu tak jak pokazane zostało to na poniższym rysunku.
Rys. 8
Qt Creator - efekt przeciągnięcia akcji z okna Edytora akcji na pasek narzędziowy
W celu pokazania, jak można odwołać się do zasobów z poziomu kodu programu dodam do pliku zasobów jeszcze jeden prefiks o nazwie /text a w jego wnętrzu umieszczę plik tekstowy zawierający krótki tekst: "tekst z pliku źródłowego". W tym celu w pliku mainwindow.cpp w utworzonym wcześniej sygnale podpiętym pod akcję actionOpen należy wprowadzić następującą modyfikację:
void MainWindow::on_actionOpen_triggered()
{
QFile file(":/text/Text/message.txt"); // tak odwołuję się do pliku z zasobów
if(file.open(QIODevice::ReadOnly | QIODevice::Text)){
QTextStream read(&file); // tworzę obiekt QTextStream do łatwego odczytu danych
read.setCodec("UTF-8"); // ponieważ mój plik jest zapisany w UTF-8 więc muszę ustawić taką właśnie stronę kodową odczytywanych znaków
ui->helloWorld->setText(read.readAll()); // wczytuję zawartość do wcześniej utworzonej kontrolki Label
file.close();
}
}
Żeby powyższy kod działał konieczne jest w pliku nagłówkowym mainwindow.h dołączenie następujących plików: