W tej chwili w aplikacji używam biblioteki boost::filesystem do obsługi plików ale chciałbym przepisać tą cześć wykorzystując klasy QFile, QDir, QFileInfo czy jest możliwe używanie klas z Qt tak jak to jest w przypadku boosta? Podpinam dll-kę i korzystam? Generalnie interesuje mnie tylko QtCore.dll.
Tak. Jest możliwe. Włączenie nagłówka, podanie do konsolidacji biblioteki i działa :-)
A sygnały i sloty nawet gdy z nich nie korzystam nie będą generowały problemów?
Możliwe drogi:
- Nie używać właściwości metaprogramowania Qt oraz sygnałów ( wyłączenie sygnałów natywnych przez CONFIG += no_keywords )
- Użyć i wtedy niestety potrzebne wywołanie moc (Mata Object Compiler)
- Wyłączyć sygnały natywne (jak pkt. 1. i użyć sygnałów np. boost'a)
Masz jakiś problem czy na razie "boisz się sprawdzić" ? :-)
Masz jakiś problem czy na razie "boisz się sprawdzić"
Raczej boje się zacząć pisać skomplikowany moduł aby w połowie przekonać się że "się nie da" i przepisywać z wykorzystaniem boosta ;)
Nie jestem w stanie przeprowadzić aż tak dokładnych testów. Proste robiłem i "działa".
Co masz na myśli mówiąc "zamiana sygnałów Qt na Boost działa"? W jaki sposób podmieniasz natywne sygnały Qt na boost-owe?
używam biblioteki boost::filesystem do obsługi plików ale chciałbym przepisać tą cześć wykorzystując klasy QFile
Czy jest jakiś konkretny powód by „pchać się” w Qt skoro to nie ma być aplikacja Qt?
Czy jest jakiś konkretny powód by „pchać się” w Qt skoro to nie ma być aplikacja Qt?
Kilka:
-
część potrzebnego kodu jest już napisana z wykorzystaniem Qt, więc ewentualnie trzeba by przepisać na boosta - dodatkowa praca, testy.
-
kilka niezbędnych rzeczy w Qt jest "wbudowane" a w c++ zajęło by dodatkowe godziny pracy i testowania. Jeden z wielu przykładów mimeType dla pliku.
-
klasy Qt wyglądają na lepiej zaprojektowane. Boost::filesystem w tej chwili u mnie wygląda strasznie. W przykładach na stronie boosta jest podobnie. Przykłady z wykorzystaniem klas Qt wyglądają "czyściej".
- część potrzebnego kodu jest już napisana z wykorzystaniem Qt,
Hmmm, no to jeszcze raz pytanie z pierwszego posta.
czy jest możliwe używanie klas z Qt tak jak to jest w przypadku boosta? Podpinam dll-kę i korzystam? Generalnie interesuje mnie tylko QtCore.dll.
Coś mi się tu nie dodaje. Część kodu jest napisana w Qt i nadal nie wiadomo jak podpiąć QtCore? Anyway, używanie Qt jest całkiem proste jeśli bawi Cię dodawanie kolejnych dll-elek do folderu z binarką. Z tego co pamiętam, licencja boosta nie tworzy żadnych problemów przy kompilacji statycznej.
Coś mi się tu nie dodaje. Część kodu jest napisana w Qt i nadal nie wiadomo jak podpiąć QtCore?
Tylko że ta część kodu ( te klasy ) jest aktualnie używana w projekcie Qt wiec tam śmiga to ładnie. Dodatkowo dochodzi kolejna część którą trzeba jeszcze napisać i kod który już mam a który chciałbym przepisać z boost::filesystem na Qt.
Proste testy to ja już robiłem, podpiąłem dll-kę QtCore i odpaliłem przykładowy projekt używając czegoś z QFile, QDir i kilku innych klas i działa bez problemów.
Pytam bo być może ktos wie o jakiś "głębszych" problemach które mogą wyjść później jeżeli chodzi o używanie klas z QtCore bez QApplication czy pętli zdarzeń.
Anyway, używanie Qt jest całkiem proste jeśli bawi Cię dodawanie kolejnych dll-elek do folderu z binarką.
W moim przypadku ograniczyłoby się chyba na jednej - QtCore5.dll. Poza tym dll-ki w katalogu z aplikacją nie stanowią dla mnie problemu. Większe znaczenie ma funkcjonalność i prostota biblioteki a pod tym względem według mnie boost::filesystem przegrywa z klasami Qt.