niedawno zainteresowałem się tematem Qt, i mam parę pytań w sumie co do rozpoczęcia nauki.
* Dość dobrze znam C# , a słyszałem ,że można zintegrować Qt z platformą .net.
Czy warto podejść od tej strony i starać się pisać ściśle pod C# używając Qt ? A może przygodę rozpocząć pisząc w C++ używając Qt ? ( też znam dość dobrze ).
* Jak to wtedy wygląda z przenoszalnością pomiędzy systemami ( używając C# ) ? Bo tutaj trochę nie rozumiem chyba idei - a nie mogę się doczytać. Czy to jest
jakaś forma nakładki językowej ? Pisząć pod windą , używając C# i Qt aplikacja wstanie na Linuxie ?
Jako tako C# nie istnieje na platfornie Unixowej (bo jest wytworem MS) :(
Tak więc lepiej zacząć zabawe w QT pisząc w c++ (w rzeczywistosci więcej będzie nawiązań do samego qt niż c++, ale zobaczysz sam :) )
A mono to co? Krowa? Sprawdź czy są qt bindings na mono. Ale moim zdaniem nie warto pisać w qt c# - jeśli będziesz chciał użyć jakiegoś fajnego dodatku do qt (np. qt mobility) to możesz nie znaleźć bindings na c#.
Dlatego żeby aplikacja Qt była przenośna, warto ją napisać w c++.
Pisanie w Qt w C++ jest moim zdaniem bardzo fajne, nie wiem czy C# mógłby coś jeszcze poprawić w tym względzie.
Przy okazji: dlaczego zarzuciłeś linkiem do dokumentacji dla wersji 3.3?
Obecnie rozwijana jest tylko wersja 4, aktualnie 4.6.
Czy mógłby ktoś wyjaśnić , co dokładnie istnieje pod pojęciem "bindings na c#" ?
Osobiście z tego co rozumiem , jest to jakiegoś typu "translator kodu" napisanego w C# na kod napisany w innym języku , zgadza się ? Jeśli tak , to jak to się będzie miało w porównaniu do Qt ?
Quote:
A mono to co? Krowa? Sprawdź czy są qt bindings na mono. Ale moim zdaniem nie warto pisać w qt c# - jeśli będziesz chciał użyć jakiegoś fajnego dodatku do qt (np. qt mobility) to możesz nie znaleźć bindings na c#.
Czyli rozumiem ,że raz napisany kod jest wieloplatformowy , ale zawsze musi być prze-kompilowany pod obecnie używaną platformę tak ? Mając napisaną aplikację w Qt pod windowsem , chcąc uruchomić ją na powiedzmy Symbianie , ściągam dodatkowe środowisko i przekompilowuje kod. I tutaj pojawia się problem opisany przez kolegę , gdzie pod daną platformę może nie być interpretera C# , racja? Czy ostro mylę idee ?
Pod symbiana masz biblioteki qt i jesli piszesz aplikacje w c++ wystarczy tylko przekompilowac ja na symbiana. Tam nie masz c#.
Natywnie Qt została napisana w c++ i jesli piszesz aplikacje qt w perlu, pythonie, javie czy c# to korzystasz z 'bidnings' do tych języków.
Binding to takie połączenie pomiędzy różnymi językami[w takim bardzo dużym uproszczeniu].
Właściwie jest to rodzaj biblioteki[można nazwać ją wrapper'em], którą używasz w swoim programie napisanym np. w C#, natomiast ona odwołuje się do np. biblioteki Qt4 i na niej wykonuje żądane operacje.
Również w uproszczeniu.
Używanie wrapper'a spowolni twój program, jeżeli będzie on głównie wykorzystywał bibliotekę do której odwołuje się wrapper.
Ja używam wrapper'a, żeby mieć możliwość tworzenia programów z interfejsem graficznym, ponieważ Python nie posiada takiej możliwości + wygodne tworzenie wątków.
Natomiast przy większych projektach to już tylko C++.
Kolejną zaletą C++ jest możliwość używania bardzo fajnego IDE QtCreator :) Link Mała demonstracja:
Co do javy to projekt Qt Jambi został porzucony przez Qt Link więc java wspierana oficjalnie na pewno nie jest, ale projekt jest dalej rozwijany przez społeczność Link.