Chciałbym zacząć naukę jednej z popularniejszych bibliotek do GUI,
no i właśnie nie wiem która z nich wybrać. Podobno Qt jest dobre ale słyszałem że trzeba udostępniać source swoich programów (to prawda?),
za to podobno wxWidgets jest łatwiejsze. Proszę doradźcie który wybrać ^^
Darmowa wersja Qt jest na licencji LGPL, a to znaczy, że obowiązuje przechodniość licencji. Wersja komercyjna nie ma takich ograniczeń. Patrz tu.
Jest w miarę niedawno wydana książka o Qt i wxWidgets. http://helion.pl/ksiazki/CPPWYK.htm Zanim wybierzesz i niezależnie od tego który wybierzesz chyba warto sobie takową kupić, żeby wyrobić spojrzenie. W każdym razie ja bym sobie kupił, gdyby była wydana troszkę wcześniej. Głosu w ankiecie nie zabieram, bo o Qt mam nikłe pojęcie.
Co z GTk, GTKmm [!!!]
chodnik - zamówiłem tą książkę, i wielkie dzięki za twoja stronę o wxWidgets, chociaż mógłbyś napisać jeszcze parę artów bo ja szybko się uczę heh ^^
adam.chyla - No faktycznie przeoczyłem GTK... a uważasz że jest lepsze od tych dwóch?
a jak wygląda licencja wxWidgets? są tam jakieś tego typu ograniczenia?
Ja (jeśli chodzi o C++) to GTKmm.
Maov napisał(a)
No faktycznie przeoczyłem GTK... a uważasz że jest lepsze od tych dwóch?
Czy lepsze to nie wiem - zależy od człowieka, ale jest 100% zgodne z językiem.
MarekR22 napisał(a)
LGPL, a to znaczy, że obowiązuje przechodniość licencji.
No chyba nie do końca.
LGPL umożliwia chyba korzystanie z kodu wydanego na niej (w postaci bibliotek dynamicznych) bez konieczności udostępnienia swojego kodu. Dopiero jeżelibyś zmieniał coś w samym QT to musisz to udostępnić, lub jeżeli linkujesz QT statycznie.
Przynajmniej z tego co się orientuje w różnicach między GPL a LGPL
Jeżeli się mylę niech mnie ktoś poprawi.
A co do samego pytania, za bardzo obiektywny nie będę bo programowałem coś tylko w QT, ale bardzo fajnie się w tym tworzy :).
Co do GTK to zaczynałem z tym coś w pyGTK, ale nie przypadło mi do gustu.
Tja, Qt na LGPL można używać komercyjnie w zamkniętych projektach o ile go nie wlinkowujesz - jeżeli musisz zmodyfikować Qt to rekompilujesz biblioteki dynamiczne i udostępniach na stronie projektu źródła zmian. Cała filozofia, przetestowane.
sadfg napisał(a)
Tja, Qt na LGPL można używać komercyjnie w zamkniętych projektach o ile go nie wlinkowujesz
Ogólnie na LGPL (libgadu, gtkmm itd)
Qt jest wydawane na trzech licencjach do wyboru, dlatego zaznaczyłem, że Qt na LGPL. Oczywiście tyczy się to wszystkich bibliotek na LGPL, zgadza się.
Myślałem ze programy napisane w cpp mają mniejszy rozmiar niż w Delphi i są szybsze, a ucząc się wxWidgets napisałem kopię mojego programu napisanego w Delphi i okazało się że zajmuje on 1,21 MB a ten sam progs w delphi - 655 KB czyli prawie 50%! Czemu tak jest???
no lol teraz skompilowałem ten kod tym razem w wxDevcpp rozmiar: 4,54 MB!
A włączyłeś w Delphi statyczne linkowanie bibliotek? Jak nie (a sądząc po rozmiarze exe to nie) to program będzie działał tylko na komputerze z zainstalowanym Delphi, ew jak dołączysz do niego jakieś tam pliki (nie pamiętam jakie), około 1,5~2 MB
Maov napisał(a)
Myślałem ze programy napisane w cpp mają mniejszy rozmiar niż w Delphi i są szybsze, a ucząc się wxWidgets napisałem kopię mojego programu napisanego w Delphi i okazało się że zajmuje on 1,21 MB a ten sam progs w delphi - 655 KB czyli prawie 50%! Czemu tak jest???
Pisz w C#, w nim wychodzą malutkie exeki ;P
naiwny jesteś. Jeśli winnych językach wykorzystasz dynamiczne biblioteki też będziesz miał malutkie exeki.
Rożnica jest taka, że ty zakładasz, że .Net jest zainstalowany na komputerze użytkownika, czego z Qt i wxWidgets lepiej nie zakładać. Poza tym uruchom program C# pod linuxem, albo na maszynie o zupełnie innej architekturze :P.
@Marek - do mnie to było?
[rotfl]
sorry - mała forma analfabetyzmu, nie przeczytałem cytatu :P.
chcesz malych i niezaleznych exekow - pisz w WinApi używając asemblera lub C (Pelles-C, LCC) - twoje programy beda miec poniżej 5 kB, a w asm poniżej 1 kB
@Loloki - program w Delphi zlinkowany statycznie ma ~700 kB, w wxWidgets ~1 MB przy użyciu normalnego kompilatora zamiast wxDevCPP z jego prehistoryczna wersja gcc
Poniżej 1kB się nawet w asm nie da aplikacji pod Windows napisać aby była przenośna pomiędzy wersjami. Teoretycznie można uciąć wolną przestrzeń na końcu pliku, ale któraś wersja Windy tego nie lubiła - bezpiecznie zejść poniżej 1024 bajtów się nie da. Aby aplikacja była faktycznie prawidłowa - musi mieć jedną sekcję i tablicę importów (braku importów bodaj Windows 2000 nie lubił), zaś plik powinien mieć rozmiar zgodny z wyrównaniem.
FSG skompresuje do ~500 bajtów - ale na ile to było przenośnie nie wiem. Podobnie FSG kompresuje kod z Pelles-C do ~1.5 - 2 kB - bardzo fajne, bo jednak pisać w C a w asm to różnica, a rozmiar prawie ten sam.
Przydatnośc tego mała jednakowoż - chyba że ktoś wirusy pisze.
Tak, tak... tylko FSG miał problemy z działaniem na części Windowsów, od XP SP2 po najnowsze z włączonym DEP-em też nie zadziała. Sorry, ale robienie rzeczy, których nie dopuszcza specyfikacja formatu PE COFF kończy się tym, że z przenośnością są problemy.
Co do wirusów jeszcze - wirus nie jest samodzielną aplikacją. To kod, który potrzebuje nosiciela, kompresja plików wykonywalnych ma się nijak do czegoś, co funkcjonuje w zainfekowanych binariach.