Skocz do zawartości

Kurs Qt - #1 - Czym jest Qt? Pierwsza aplikacja w praktyce


Komentator

Pomocna odpowiedź

W przypadku komunikacji bezpośrednio po TCP/UDP, bez żadnych "chmurowych" serwerów, np PC<->ESP8266 komunikacja przebiega praktycznie jak po każdym interfejsie, czy to comporcie, bt czy spi. W przypadku architektury embedded <-> chmura <-> pc/telefon warto skorzystać z jakiegoś brokera, np. mqtt. Wtedy stawiamy sobie na serwerze broker mqtt, potem każde urządzenie (serwer/pc/telefon/embedded) subskrybujemy do danego tematu na serwerze i tak naprawdę najgorszą robotę przesyłania wiadomości odwala za nas rzeczony broker - a libki do mqtt są praktycznie na każdą platformę, zazwyczaj takie "eventowe" - przychodzi wiadomość, wywołuje się callback i w zależności jaka to wiadomość coś tam sobie w kodzie robimy. Analogicznie jak wywołanie slotu w qt.

 

EDIT: W QT 5.12 jest już MQTT natywnie 🙂 więc nie trzeba żadnych dodatkowych bibliotek.

Edytowano przez Bobby
  • Lubię! 2
Link do komentarza
Share on other sites

Jako zawodowy programista Qt bardzo ucieszyłem się, że na tym portalu pojawił się taki poradnik. Uważam, że Qt ma wielki potencjał i fajnie, że teraz społeczność Forbota będzie mogła się o tym przekonać.

Chciałbym dodać, że Qt ma takze bindingi do Pythona, także, jeżeli ktoś niekoniecznie lubuje się w C++ to zawsze mozę skorzystać z PyQt.

Planujesz poruszyć temat QML i QtQuick?

Cytat

Czy przez WiFi (aplikacja <-> urządzenie) czy przez serwer/chmurę (aplikacja <-> serwer <-> urządzenie). Bo w tym pierwszym przypadku wydaje mi się, że jest to porównywalny nakład pracy co w przypadku portu szeregowego czy BT. Natomiast w tym drugim przypadku nie mam żadnego doświadczenia ale na pewno dochodzą do tego sprawy związane z obsługą serwera. Może ktoś inny miał doświadczenie w tego typu rozwiązaniach i jest w stanie opisać krótko jak to wygląda od kuchni?

Zakładając, ze przy pracy po WiFi łączymy się bezpośrednio z urządzeniem (aplikacja <-> urządzenie) i chcemy przerobić to na (aplikacja <-> serwer <-> urządzenie) to tak naprawdę wystarczy napisać prostą aplikację serwerową w Qt (wykorzystując np. QTcpServer). 

Idea jest prosta, serwer ma tylko pośredniczyć pomiędzy urządzeniem a aplikacją. 

Urządzenie będzie wysyłało dane na adres serwera a serwer tylko przekaże je do aplikacji (która również połączy się z serwerem). Nie mam gotowego snippetu kodu, ale w dokumentacji Qt jest kilka przykładów odnośnie wykorzystania QTcpServer i QTcpSocket.

Edytowano przez erulission
literówki
  • Lubię! 2
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

O QML i QtQuick tylko wspominam, że takie moduły są i że można zrobić z nimi fajne projekty. Może zrobię kolejną część, w której obsługa komunikacji zostanie w C++ a interfejs zostanie przeniesiony do QML? Zobaczymy jaka będzie popularność na koniec planowanej serii.

5 godzin temu, SOYER napisał:

Być może, @Matthew11 zastanowi się nad dopisaniem na koniec kursu, kilku odcinków na temat połączenia Qt z devicem via internet;) 

Zobaczymy (y)

Link do komentarza
Share on other sites

Hej, mam problem ze środowiskiem Qt Creator 

Działał dobrze, póki nie próbowałem ustawić go na drugim monitorze. Rozmiar tekstu na nim był bardzo mały, więc zmieniłem skale aplikacji w windowsowskich ustawieniach. Nie pomogło, więc wróciłem ze skalą z powrotem, ale od tej pory Qt Creator mi nie działa. Włączam go i pojawia się puste okienko włączonego programu (jak na screenshocie) i nic więcej.

Co próbowałem:

  • włączyć jako administrator
  • włączyć przez konsole
  • włączyć z trybem zgodności
  • odłączyć drugi monitor 

Nie próbowałem:

  • zainstalować ponownie

Jakieś pomysły co mogę zrobić, czy bez ponownej instalacji się nie obejdzie?

Co do kursu to zapowiada się fajnie, byłoby super gdyby kolejne części były szybciej wrzucane 🙂

qt.png

 

Edit:

Ponowna instalacja nie pomogła, ale znalazłem rozwiązanie na stackoverflow. Jakby ktoś miał jakimś cudem podobny problem, to daje linka: https://stackoverflow.com/questions/49277657/qt-creator-too-big-on-3840x2160-and-150-scaling-on-windows-10

Edytowano przez Shog
  • Lubię! 1
Link do komentarza
Share on other sites

@kingdeimons witam na forum 🙂

Na wspomnianej podstronie wymienione są kursy, które tworzymy jako redakcja Forbota. Jednak na blogu jest też kilka innych małych serii, które zostały napisane przez naszych czytelników. W przypadku tych drugich serii nie zawsze możemy zapanować nad aktualizacjami treści i wsparciem, bo zwyczajnie na niektórych tematach się nie znamy. W związku z tym serie, które nie są naszego autorstwa nie były tam nigdy wymieniane, ale pracujemy nad jakimś uporządkowaniem tematu. Na pewno kurs Qt niedługo się tam pojawi 🙂

Link do komentarza
Share on other sites

Mam pytanie odnośnie QTCreatora na screenach widać, że całe okno jest w ciemnym motywie, natomiast mój jest w jasnym. Stąd pytanie czy trzeba jeszcze coś doinstalować czy tylko gdzieś w ustawieniach zmienić?

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.