Qt Designer C++ lub QML dla GUI [zamknięty]

Wiem, że zastosowanie QML jest całkiem nowe w QT i zastanawiałem się, czy powinienem zaprojektować swoją aplikację za pomocą QTDesigner lub QML. Będę używać wzorca MVC i moim głównym problemem, jeśli używam QML dla GUI jest to, że może nie być łatwo zintegrować wewnątrz reszty mojej aplikacji C++.

zapraszam do udzielania osobistych porad, byłbym bardzo wdzięczny. Dziękuję!

Author: Aerovistae, 2011-01-06

3 answers

QML jest przeznaczony przede wszystkim dla platform mobilnych. Ze względu na swoją młodość i troskę o różne konwencje interfejsu platformy, brakuje mu standardowych elementów sterujących, takich jak przyciski i pola kombi (ale patrz projekt Components). Jeśli korzystasz z urządzeń mobilnych lub twój interfejs użytkownika wymaga wysoce spersonalizowanego stylu wizualnego, QML może być warty rozważenia. Przygotuj się na wiele dodatkowych prac przy projektowaniu niestandardowych kontrolek. Integracja QML i C++ jest moim zdaniem dość trudna. Ja osobiście zalecamy używanie QML tylko dla prostszych aplikacji, tylko na platformach mobilnych i tylko z JavaScript. W odpowiednich okolicznościach mógłbym rozważyć napisanie niestandardowych elementów QML w C++.

Qt ' S C++ API nie zniknie w najbliższym czasie. Jest również zaprojektowany z myślą o pulpicie i lepiej spełni oczekiwania użytkowników na platformach desktopowych. Jeśli jesteś na pulpicie, polecam trzymać się C++ i Designer. nawet po dojrzeniu QML, prawdopodobnie nie będzie to odpowiednie rozwiązanie dla większości aplikacji komputerowych.

Aktualizacja!

Wygląda na to, że rzeczy zaczynają się zmieniać. Sam jeszcze nie próbowałem nowych komponentów, a dokumentacja wydaje się być trochę uboga( a przynajmniej z drogi), ale może to ostatecznie usunąć największą barierę w używaniu QML na pulpicie. Pozostaje sprawdzić, czy w dłuższej perspektywie otrzyma wsparcie, ale jeśli jesteś gotów zaakceptować ryzyko bycia wczesnym użytkownikiem, myślę, że QML może być teraz realny wybór dla aplikacji desktopowych.

 44
Author: Steve S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-29 22:42:53

Warto wypróbować trochę QML, aby sprawdzić, czy odpowiada twoim potrzebom.

Jeśli budujesz wysoce niestandardowy interfejs użytkownika z dynamicznymi interfejsami i animacjami, QML pasuje do tego zadania; jeśli budujesz tradycyjną aplikację desktopową, prawdopodobnie będziesz chciał trzymać się Qt C++ API.

W odniesieniu do integracji pomiędzy QML i C++, QML został zaprojektowany tak, aby można go było łatwo zintegrować z kodem C++, a wiele aplikacji QML używa pewnego rodzaju zaplecza C++. Jest to proste do inject C++ objects into a QML interface, or write custom QML elements in C++. Zobacz http://doc.qt.io/archives/qt-4.7/qtbinding.html i http://doc.qt.io/archives/qt-4.7/qml-extending-tutorial-index.html .

 15
Author: blam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-25 07:03:22

Jedną z rzeczy, których nie dostrzegają powyższe odpowiedzi, jest to, że QML ma dodatkową zaletę / wadę JavaScript dla logiki biznesowej (jeśli jest taka potrzeba). Obecnie buduję (małą i średnią) aplikację na pulpit i w tej chwili Moi (2) użytkownicy alpha cieszą się nią. Jestem pod wrażeniem ekspresji frameworka i tego, jak szybko mogę go skonfigurować i przetestować. W sumie uważam, że praca z nim jest szybsza niż edytor RAD (projektant) i cieszę się, że JavaScript jest awaryjny na moim interfejsie użytkownika, gdy robię irytujące rzeczy jak hovers / validation itp...

Myślę, że to kwestia tego, jak dobrze znasz język. Jeśli C++ jest Twoim" przejdź do " języka, to prawdopodobnie faworyzujesz projektanta. Jeśli pochodzisz z sieci (wyznanie, jestem inżynierem Java EE / MVC. NET dev robi dużo front-end) znajdziesz to odświeżające i szybkie.

Pozwala również na pewną reakcję, której użytkownicy oczekują w dzisiejszych czasach. Ogólnie dałbym duży plus. Spróbuj-prawdopodobnie będziesz raczej proszę i raczej zirytowany w tym samym czasie. Nadal jestem zły na kilka rzeczy (w szczególności FileIO), ale cieszyłem się stroną GUI rzeczy w sposób, który rzadko robię na pulpicie.

 13
Author: Daniel B. Chapman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-26 21:57:28