Skocz do zawartości

Matthew11

Użytkownicy
  • Zawartość

    132
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    5

Matthew11 zajął 1. miejsce w rankingu.
Data osiągnięcia: 16 lutego.

Treści użytkownika Matthew11 zdobyły tego dnia najwięcej polubień!

Reputacja

160 Mistrz

O Matthew11

  • Ranga
    5/10

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Kraków
  • Języki programowania
    C, C++

Ostatnio na profilu byli

3605 wyświetleń profilu
  1. Nie znam na tyle QtWidgets, ale nie wydaje mi się to dobrym rozwiązaniem (albo możliwym). Zdecydowanie łatwiej będzie rozsyłać informacje za pomocą sygnałów i slotów. Najlepiej zaimplementować oba rozwiązania i wybrać to, które jest bardziej eleganckie.
  2. Dokładnie, addToLogs() jest sygnałem który emitujemy a łapiemy go w MainWindow. Pod Linuxem nie miałem żadnych problemów, więc spróbuj uruchomić aplikację pod debuggerem i zobacz gdzie konkretnie jest problem, może jest to po prostu jakiś problem w kodzie lub Android wymaga szczególnej obsługi okien. Skoro Twoim targetem jest Android to tym bardziej zachęcam do wykorzystania QtQuick zamiast QtWidgets.
  3. @kabaczek Problemów jest kilka: miejsce stworzenia obiektu klasy control wywołanie metody exec() dla QDialog problem przekazania zależności klasy MainWindow do pochodnego QDialog Pierwszy i drugi problem są ze sobą powiązane. Pierwszy dotyczy miejsca, w którym tworzysz obiekt Twojej implementacji QDialog w postaci klasy control co implikuje drugi problem. Tworzysz obiekt w metodzie void MainWindow::on_pushButtonOpenControl_clicked() - na stosie - więć po wyjściu z metody, ten obiekt zostanie usunięty a okno zamknięte automatycznie. Nie jest to nic złego - tylko użycie
  4. Garść informacji: private to słowo kluczowe z C++, a private slots to makro (slots jest makrem) dodane przez Qt, które służy do oznaczenia metod pod spodem że są slotami i mogą być wykorzystane przez mechanizm sygnałów i slotów. Jest to też oznaczenie dla MOC'a (Meta Object Compiler) - kod jest kompilowany przez MOC'a gdy wykorzystuje jakieś funkcjonalności Qt. Z punktu widzenia programu nie ma żadnej różnicy, gdyż każdy slot jest normalną metodą C++, ale nie każda metoda jest slotem Qt. W naszym przypadku nie wykorzystujemy sendMessageToDevice() w mechanizmie sygnałów i slotów, dlatego u
  5. @kabaczek Cieszę się, że podoba Ci się kurs. Dzięki wielkie za czujność. Rzeczywiście w tekście artykułu czyszczenie comboboxa jest pominięte, natomiast jest ono już zaimplementowane w załączonym do artykułu kodzie projektu. @kabaczek QComboBox jest swego rodzaju kontenerem jak np. std::vector. Z reguły takie kontenery posiadają metodę czyszczącą np. clear(), tak jest również w przypadku QComboBox. Nie musisz implementować własnych pętli i usuwać tych elementów ręcznie, wystarczy że wywołasz: ui->comboBoxDevices->clear(); Co więcej w nowoczesnym C++ (C++11 i nowszym) używani
  6. @multidot Zakładając że włączyłeś VSC i stworzyłeś projekt A i projekt B - to VSC doda foldery tych projektów do "workspace" VSC. Możesz sam dodawać foldery innych projektów do workspace klikając PPM w drzewie projektu -> "Add Folder to Workspace" jeśli pracujesz z wieloma projektami (możesz nawet tego workspace zapisać i potem tylko ładować workspace). Zazwyczaj aktywny projekt wynika z tego który plik masz otwarty w trybie edycji (widać wyróżnienie na pasku nad edytorem). Np. masz otwarty plik main.cpp z projektu B - to PIO może to wykorzystać i wtedy zbuduje projekt B. Natomiast ni
  7. @zenon_19 w README.md pod nagłówkiem Software Compilation masz napisaną dokładną instrukcję co musisz zrobić. Pierwsza informacja mówi o tym, że projekt działa tylko pod Linuxem. Więc potrzebujesz jakiejś dystrybucji Linuxa (ja np. używam Ubuntu). Następnie musisz zainstalować cały zestaw narzędzi (kompilator etc.) - GNU Arm Embedded Toolchain - masz nawet podany link do strony na której możesz go pobrać. Po instalacji musisz podać ścieżkę do katalogu z kompilatorem i innymi narzędziami zainstalowanego toolchaina (najczęściej katalog bin) do zmiennej środowiskowej PATH. A następnie musis
  8. @zsakul009 Na Linuxie instaluje tylko: Kompilator - GCC - mam pobrany przez menedżer pakietów. Na Windowsie: Na Windowsie ja mam akurat pobrane Qt (to jest faktyczna biblioteka Qt) dla MinGW i MSVC - jak nie masz takiej potrzeby nie musisz pobierać Qt dla MSVC. Dodatkowo w Developer and Designer Tools możesz (a właściwie instalator robi to domyślnie) pobrać kompilator -MinGW - co jest najwygodniejszą opcją.
  9. @zsakul009 Wszystko zrobiłeś dobrze. Natomiast problem stanowi tutaj Qt. Qt6 jest co prawda najnowszą wersją ale faktycznie jest to na razie beta. Wiele modułów jak np. serialport nie są jeszcze zaimplementowane/obsłużone w wersji 6. Dlatego rozwiązaniem Twojego problemu jest zainstalowanie najnowszej wersji Qt ale wersji oznaczonej numerem 5. P.S. dopiero wersja Qt 6.2 (prawdopodobnie) będzie posiadała wszystkie moduły.
  10. Jeśli Twój projekt się kompiluje i działa na płytce - to tak możesz zignorować ostrzeżenia związane z VSC (bo prawdopodobnie nie wynikają one z Twojego projektu tylko problem jest z samym VSC). @Daro_P A z ciekawości jak zmienisz nazwę katalogu z projektem z 201... na nazwę która nie zaczyna się cyfrą i nie zawiera znaków specjalnych to dalej występuje to ostrzeżenie?
  11. @Daro_P To co pokazałeś to jest jakiś problem VSC - nie wiemy jaki dokładnie bo nie pokazałeś całości. Plik c_cpp_properties.json to jest plik, który VSC tworzy automatycznie i automatyczne go edytuje - Ty z kolei nie powinieneś go edytować bo i tak Twoje zmiany zostaną nadpisane. Jak spojrzysz w drzewo projektu to zobaczysz tam dwa katalogi .pio i .vscode Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 20.11.2020 17:49 .pio d----- 20.11.2020 17:49 .vscode d-----
  12. To jest w sumie ciekawe. Przez cały ten okres kiedy używam PIO, zauważyłem, że robi clean build tylko w trzech przypadkach: dodasz nowy plik do projektu zmienisz coś w pliku projektu .ini budujesz projekt po wcześniejszym clean'ie Może to jedna z tych opcji? Ja akurat zawsze mam projekt w innym katalogu niż domyślny. I w sumie nigdy nie miałem z tym problemu (może dlatego, że 90% czasu korzystam z PIO na Linuxie?). Trzeba tylko otworzyć VSCode w katalogu z plikiem projektu (.ini) albo wyklikać ten folder z poziomu VSCode. Od razu pro tip jeśli chcemy mieć otwa
  13. Korzystam z VSCode + PlatformIO już od nieco ponad dwóch lat i jestem bardzo zadowolony. VSCode jako edytor jest świetnym narzędziem i niechętnie przesiadałbym się na coś innego. Z samym PlatformIO nigdy nie miałem większych problemów. Na czystym systemie w ciągu kilkunastu minut mamy gotowe środowisko do pracy ze wszystkim co potrzebne - bez różnicy czy jest to Windows czy Linux. PlatformIO wspiera też framework unit testów postaci Unity co pozwala nam na odpalanie testów zarówno na targecie jak i na maszynie na której pracujemy co też jest ciekawą opcją. Przez plik projektu (.ini) mamy też d
  14. Matthew11

    Nauka języka C w 2020/21

    Język C++ jest przede wszystkim językiem ogólnego przeznaczenia. To, że można w nim programować w podejściu obiektowym to tylko jedna z jego funkcjonalności. Polecam obejrzeć krótki ale nieco kontrowersyjny (z racji tytułu) odcinek C++ Weekly - C++ Is Not An Object Oriented Language.
  15. Matthew11

    Nauka języka C w 2020/21

    To zależy. Jeśli w ostatecznym rozrachunku i tak chcesz poznać C++ to moim zdaniem powinieneś uczyć się od razu C++. Znacznie łatwiej będzie Ci późnej napisać coś w C znając już C++. Próbując w drugą stronę znając C próbować coś pisać w C++ może być Ci ciężko przestawić się na obiektowe myślenie (oczywiście zakładając, że będziesz pisał w tym podejściu programy, ale wcale nie musisz bo nadal możesz pisać w C++ jakby to było C). Obejrzyj prezentację Kate Gregory z CppCon na ten temat -
×
×
  • 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.