[C++] wybor wx czy qt?

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
luzakwielki
Wytworny Kaczor
Wytworny Kaczor
Posty: 264
Rejestracja: 19 lis 2008, 11:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: [C++] wybor wx czy qt?

Post autor: luzakwielki »

Jimbex pisze:No i pytanie bonus - chce stworzyc zarowno gry 2d dla graczy linuxowych jak i jeden program uzytkowy dla wszystkich systemow (stad zaintersowanie wx/qt) - rzeczone biblioteki spelnia swoja role?
Zarówno Wx jak i QT są dobrym wyborem (ja polecam QT). W Wx dużo dawniej pisałem (GTK, GTKMM są moim zdaniem niewygodne, mają słabe widgety, są wolne, i słabo się sprawują na systemach innych niż linux (chociaż i tu nie są najlepsze ;p)), teraz piszę w QT (od czasu aż Qt zmieniło licencję z GPL, na LGPL, czyli wersji 4.5 i mimo szacunku dla Wx nie powróciłbym do niego). Co do gier 2d to nie używaj Wx czy Qt, tylko bibliotek do tego przeznaczonych które się lepiej do tego nadają czyli SDL, SFML, Allegro.
el.pescado pisze:Qt jest dostępne na kilku licencjach. Możesz sobie wybrać tę, która najbardziej Ci pasuje.
Dokładnie tak są dostępne:
- LGPL (można wydawać zamknięte programy, jeśli linkuje się do bibliotek dynamicznie).
- Komercyjna (możesz, zmieniać kod biblioteki, linkować statycznie).
Razi pisze:Na początek Qt, potem przesiadka na wx, składniowo jest dość podobny, a nieco milsza licencja.

btw. qmake jest genialny, znacznie prostszy od samego makefile.
Nie polecam zmiany, jak już pozna Qt, a możesz w czym milsza jest licencja Wx? Byłą dawniej, a teraz zarówno Qt, jak i Wx jest na LGPL.
Jimbex
Piegowaty Guziec
Piegowaty Guziec
Posty: 15
Rejestracja: 20 cze 2010, 17:51
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C++] wybor wx czy qt?

Post autor: Jimbex »

Dziekuje wszystkim za jasne i rzeczowe wyjasnienie tematu. Postanowilem oprzec sie na QT, zas SDL w dalszej perspektywie ewentualnie tez rozpoznam ;) Swoja droga dlaczego lepiej uzyc SDL do programow 2d? QT per se nie bedzie wystarczylo do tworzenia, mimo tego, ze mozna na nim robic programy 3d obslugujace opengl i pokrewne? :)

I prosze jeszcze o jedno wyjasnienie - linkowanie dynamiczne jest wtedy, gdy w naglowku dla preprocesora dodam #include (xxx)?
a statyczne, gdy np otworze sobie biblioteke i przekopiuje fragmenty kodu obslugujace konkretne klasy,zdarzenia, etc?
luzakwielki
Wytworny Kaczor
Wytworny Kaczor
Posty: 264
Rejestracja: 19 lis 2008, 11:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: [C++] wybor wx czy qt?

Post autor: luzakwielki »

Jimbex pisze:Dziekuje wszystkim za jasne i rzeczowe wyjasnienie tematu. Postanowilem oprzec sie na QT, zas SDL w dalszej perspektywie ewentualnie tez rozpoznam ;) Swoja droga dlaczego lepiej uzyc SDL do programow 2d? QT per se nie bedzie wystarczylo do tworzenia, mimo tego, ze mozna na nim robic programy 3d obslugujace opengl i pokrewne? :)
Nie widziałem, żeby ktoś pisał, że SDL nadaje się bardziej do programów 2d, a do gier/multimediów... bo została do tego stworzona ;]. Np. w SDL utworzenie okienka i narysowanie coś w nim to kwestia kilku/kilkunastu linijek, załadowanie z pliku obrazka i narysowanie go, to dodatkowe 2 linijki - kod jest prosty i przejrzysty, a obsługa myszki, klawiatury, joysticka (razem z force feedback) to banał - do tego są również proste rozszerzenia jak SDL_net, SDL_mixer... które również z sieci, muzyki i innych rzeczy zrobią coś wprost banalnego (dodatkowo nie marnuje zasobów więc jest idealna do gier (dlatego nie tylko gry 2d z niej korzystają, a też Quake3, Nexuiz, Unreal Turnamment... i inne gry które były portowane na Linuksa lub MacOS'a)).
Ja piszę gry 3d (sprzedawane później na Windowsa) i właśnie narzędzia i edytory 3d mam w QT (jeszcze używam kilku w Wx, których jeszcze nie przepisałem ;p), ale już gry korzystają z SDL do utworzenia okna i obsługi wejścia (mysz, klawiatura, joy) - dźwięk, sieć, tekstury, czcionki... nie używam już z SDL, ale dlatego bo albo coś im brakuje (dźwięk stereo, a nie przestrzenny), lub istnieją/napisałem lepsze rozwiązania.
Jimbex pisze:I prosze jeszcze o jedno wyjasnienie - linkowanie dynamiczne jest wtedy, gdy w naglowku dla preprocesora dodam #include (xxx)?
a statyczne, gdy np otworze sobie biblioteke i przekopiuje fragmenty kodu obslugujace konkretne klasy,zdarzenia, etc?
Include nie ma nic do rzeczy (to jest nagłówek i tym się zajmuje kompilator, a nie linker).
To czy biblioteka jest statyczna czy dynamiczna decydujesz przy jej kompilacji - czy jest statyczna, czy dynamiczna/współdzielona (używasz gcc więc w google możesz sobie wyszukać gcc) - jeśli nie chcesz kompilować, a użyjesz tej z systemu (np. z ubuntu) to będzie to biblioteka dynamiczna i tak się zlinkuje.

Możesz zresztą sprawdzić czy biblioteka jest zlinkowana dynamicznie. Polecenie ldd wypisuje zależności od bibliotek współdzielonych/dynamicznych, więc wystarczy, że wpiszesz w konsoli "ldd ./plik_wykonywalny", a pojawi się lista jakich bibliotek potrzebuje do działania (jeśli nie będzie tam jej to znaczy, że jest zlinkowana statycznie, czyli program nie potrzebuje plików dll/so, a kod tych bibliotek, stał się integralną częścią programu (biblioteka zlinkowała się statycznie)).
Razi
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 150
Rejestracja: 20 paź 2007, 16:23
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: KDE Plasma
Kontakt:

Odp: [C++] wybor wx czy qt?

Post autor: Razi »

licencja lGPL w Qt zabrania zarabiania na tej bibliotece. Wx nie ma tego ograniczenia.
luzakwielki
Wytworny Kaczor
Wytworny Kaczor
Posty: 264
Rejestracja: 19 lis 2008, 11:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: [C++] wybor wx czy qt?

Post autor: luzakwielki »

Razi pisze:licencja lGPL w Qt zabrania zarabiania na tej bibliotece. Wx nie ma tego ograniczenia.
Co Ty piłeś? To zwykła licencja LGPL i możesz bez problemu zarabiać na niej i korzystając z biblioteki która jest na niej (ba nawet na GPL możesz zarabiać). Praktycznie jedynym ograniczeniem LGPL jest to, że zmieniając kod biblioteki te zmiany musisz udostępnić innym, i nie możesz linkować statycznie z programem (bo wtedy staje się jak GPL - dalej możesz zarabiać i sprzedawać, ale musisz rozpowszechniać kod programu).
mikolajs
Wytworny Kaczor
Wytworny Kaczor
Posty: 352
Rejestracja: 15 paź 2008, 18:30
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma

Odp: [C++] wybor wx czy qt?

Post autor: mikolajs »

2. The exception is that you may use, copy, link, modify and distribute
under the user's own terms, binary object code versions of works based
on the Library.
Licencja WxWidget jest trochę bardziej liberalna niż LGPL, ale nie oznacza to że przez to lepsza. Moim zdaniem Qt to znacznie lepszy wybór nie pojawią Ci się takie problemy jak niedziałający w linuksie system druku :(
luzakwielki
Wytworny Kaczor
Wytworny Kaczor
Posty: 264
Rejestracja: 19 lis 2008, 11:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: [C++] wybor wx czy qt?

Post autor: luzakwielki »

mikolajs pisze:Licencja WxWidget jest trochę bardziej liberalna niż LGPL, ale nie oznacza to że przez to lepsza. Moim zdaniem Qt to znacznie lepszy wybór nie pojawią Ci się takie problemy jak niedziałający w linuksie system druku :(
Tak, wx jest minimalnie zmienioną LGPL (dopóki nie linkujesz statycznie, a dynamicznie, to możesz zmienić licencję binarnej biblioteki dll/so (nie musisz udostępnić zmian w bibliotece jeśli takie chcesz zrobić, możesz np. zabronić rozpowszechniać pliku biblioteki, czy użytkownikowi tej binarki nakazać drapanie się po dupie w trakcie jak jest ona załadowana do pamięci komputera... z tym, że ta zmiana tak na prawdę niczego nie zmienia, bo i tak musisz linkować dynamicznie, a to że nie musisz udostępniać kodu to też nie jest wielki problem w wypadku jak musisz (bo i tak, rzadko/nigdy nie modyfikujesz kodu, a jak chcesz zmodyfikować, to lepiej zrobić to poza biblioteką (w ramach innej biblioteki pomocniczej/części programu gdzie zaimplementujesz sobie jak chcesz i też do swojego kodu, masz pełne prawa dać licencje jaką chcesz)))).
Czyli licencja Wx mimo, że wydaje się bardziej liberalna praktycznie nic nie zmienia przy tworzeniu programu i możliwościach jego sprzedaży... (a bardzo daleko jej do prawdziwych liberalnych licencji jak zlib/bsd, gdzie możesz prawie wszystko (w niektórych bsd możesz dosłownie wszystko razem z możliwością chwalenia się, że kod którego nawet nie widziałeś, jest twoim dziełem) - zresztą dzięki licencjom typu BSD powstała duża część MacOS X czy Windows).
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 13 gości