• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Warto uczyć się pisania GUI czy lepiej skorzystać z gotowego edytora?

VPS Starter Arubacloud
0 głosów
459 wizyt
pytanie zadane 1 września 2021 w C i C++ przez tonn204 Mądrala (7,440 p.)
Witam, programuję trochę w C++ i chcę zrobić program okienkowy z wykorzystaniem Qt. Czy waszym zdaniem jest sens uczyć się tego programowania całego GUI w C++ czy lepiej będzie wykorzystać gotowy kreator, który zrobi większość za mnie? Z ciekawości jeszcze zapytam, jak robi się w profesjonalnych projektach?

2 odpowiedzi

+4 głosów
odpowiedź 2 września 2021 przez Pawel1995 Gaduła (3,810 p.)
Ja jak piszę drobną aplikację to często piszę ją od zera.

Ale korzystanie z gotowych elementów nie jest grzechem i często sie je stosuje.

Natomiast warto tych gotowych elementów nie wrzucać na ślepo, warto żebyś wiedział co tam się dzieje.

Bywa że gotowy element trzeba dostosować do swojego projektu, a tego bez znajomości podstawy już będzie ci trudno zrobić.
komentarz 2 września 2021 przez tkz Nałogowiec (42,000 p.)
Bujda. Nie po to używamy abstrakcji by potem z niej rezygnować dla lepszej "samoświadomości". W komercyjnej pracy będzie używał gotowców, bo po prostu oszczędzają czas. Abstrahując, że z twierdzenie "warto żebyś wiedział co tam się dzieje." jest średnio prawdziwe. Jak nisko schodzisz pisząc cokolwiek graficznego. Na poziom krzemu? Jeżeli ta wiedza nijak nie pomoże w rozwiązaniu problemu, jest po prostu zbędna.
komentarz 3 września 2021 przez Comandeer Guru (599,730 p.)

W komercyjnej pracy będzie używał gotowców, bo po prostu oszczędzają czas.

To jest prawdą tak długo, jak są gotowce i faktycznie rozwiązują dany problem. Z doświadczenia z mojej pracy wynika, że zwykle są 2 gotowce na 10 problemów. 

komentarz 3 września 2021 przez tkz Nałogowiec (42,000 p.)
Pytanie czym się zajmujesz. I czy naprawdę potrzebujesz podejść do tego problemu od tej strony. Kwestia doświadczenia, czy po prostu wymagań klienta. O ile nie budujesz rakiet kosmicznych, to raczej 9/10 problemów da się rozwiązać gotowcami, albo przynajmniej się na nich opierać.
2
komentarz 3 września 2021 przez Comandeer Guru (599,730 p.)

O ile nie budujesz rakiet kosmicznych […]

 Nie buduję, a gotowców nie ma. Wystarczy siedzieć w jakiejś niszy – czy to parserów, czy edytorów tekstu.

1
komentarz 6 września 2021 przez Pawel1995 Gaduła (3,810 p.)

@tkz, bujda? Raczej niski poziom empatii po twojej stronie. 

Nie każdy ma te sama pracę, w mojej pracy gdzie większość GUI to konfiguracja sprzętu, używanie szablonów/abstrakcji jest opcją, nie obowiazkiem.

Jeżeli w twojej pracy robicie programy z GUI na akord to twoja praca, nie moja i nie moje doświadczenie.

komentarz 6 września 2021 przez tkz Nałogowiec (42,000 p.)
Przeczytaj definicje empatii. Następnie przeczytaj w jakim kontekście pada pytanie.

Nie zauważyłem poprzedniej odpowiedzi. Edytory tekstu, to nisza? Parserów czego?
komentarz 6 września 2021 przez Comandeer Guru (599,730 p.)

Edytory tekstu, to nisza?

Tak. Zarówno desktopowe (których rynek jest podzielony między Wordem a LibreOffice'em), jak i webowe, gdzie całość opiera się tak naprawdę na dwóch algorytmach i jednym API.

 Parserów czego?

Tak naprawdę dowolnej rzeczy. Samo rozwinięcie np. parsera TS-a jest sprawą mocno nietrywialną. 

komentarz 6 września 2021 przez tkz Nałogowiec (42,000 p.)
Budujesz na raz całość? Nie rozumiem trudności. Zbudowanie całej rakiety samemu też jest nie lada wyzwaniem. Budowanie kawałek, po kawałku wydaje się bardziej realne. Abstrahując, że podając efekt końcowy ulegamy złudzeniu, że właśnie jest to nietrywialne. Dzieląc problem na małe etapy jest to dużo prostsze.
komentarz 6 września 2021 przez Comandeer Guru (599,730 p.)
Ale co ma budowanie naraz do trudności i złożoności problemu? Zapewniam, że podzielenie tego na mniejsze części nijak tego nie zmienia. Zwłaszcza w przypadku rzeczy projektowanych bez nacisku na rozszerzalność. Parser TS-a nie ma nawet sensownej dokumentacji, sama potrzeba robienia reverse engineeringu wymaga wystarczająco dużej wiedzy i obycia w codebase'ie parsera. Zwłaszcza, że nie jest on przesadnie modularny i często zmiany w jednym miejscu wpływają na coś w innym.

A edytory tekstu składają się w dużej mierze z małych, pojedynczych problemów, z których większość jest nietrywialna, np. wyszukanie początku i końca klikniętego słowa (którego np. połowa jest otoczona jakimś elementem HTML) czy obsługa IME.
komentarz 6 września 2021 przez tkz Nałogowiec (42,000 p.)

Ale co ma budowanie naraz do trudności i złożoności problemu?

Wiele. Ilość pracy może przytłoczyć. Skomplikowanie problemu również. Naukę chodzenia nie zaczynasz od biegania. 

Parser TS-a nie ma nawet sensownej dokumentacji, sama potrzeba robienia reverse engineeringu wymaga wystarczająco dużej wiedzy i obycia w codebase'ie parsera. 

Witam w cyberbezpieczeństwie. Nadal problemy nie wydają mi się tak strasznie jak je przedstawiasz. Nie mówię również, że rozwiąże wszystkie po pstryknięciu palcem. Może kwestia wiedzy w akurat tej dziedzinie. 

wyszukanie początku i końca klikniętego słowa (którego np. połowa jest otoczona jakimś elementem HTML) czy obsługa IME.

Masz na myśli dwuklik na tekście by go zaznaczyć? 

komentarz 6 września 2021 przez Comandeer Guru (599,730 p.)

Wiele. Ilość pracy może przytłoczyć. Skomplikowanie problemu również. Naukę chodzenia nie zaczynasz od biegania. 

Mówisz, jakbym był początkujący w tych kwestiach. Tylko że ja siedzę w tych tematach od dawna i wiem, że po rozłożeniu na części całość nie staje się łatwiejsza. Bo poszczególne części problemu są trudne same w sobie.

 Witam w cyberbezpieczeństwie.

Co ma do tego cyberbezpieczeństwo?

Może kwestia wiedzy w akurat tej dziedzinie. 

Mam odpowiednią wiedzę w tej dziedzinie.

Masz na myśli dwuklik na tekście by go zaznaczyć? 

Nie do końca, ale tak, chodzi o podobny mechanizm.

komentarz 6 września 2021 przez tkz Nałogowiec (42,000 p.)

Mówisz, jakbym był początkujący w tych kwestiach. Tylko że ja siedzę w tych tematach od dawna i wiem, że po rozłożeniu na części całość nie staje się łatwiejsza. Bo poszczególne części problemu są trudne same w sobie.

Możliwe, na pewno mam mniejsze doświadczenie. 

Co ma do tego cyberbezpieczeństwo?

Codzienność w tej gałęzi. Inaczej nie masz dostępu do 99% rzeczy.

Nie do końca, ale tak, chodzi o podobny mechanizm.

Qt dostarcza to bez większych problemów. Mowa o C++, nie wiem jak to wygląda w innych technologiach. Chyba, że masz na myśli coś bardziej zaawansowanego. 

komentarz 6 września 2021 przez Comandeer Guru (599,730 p.)

Qt dostarcza to bez większych problemów. Mowa o C++, nie wiem jak to wygląda w innych technologiach. Chyba, że masz na myśli coś bardziej zaawansowanego. 

Mówię o implementacji tego w JS-ie w celu określenia np gdzie dodać nowy styl. Zrobienie tego dla języków opartych na alfabecie łacińskim nie jest proste, nie wspominając już o innych. Do tego nie ma żadnych gotowców.

komentarz 6 września 2021 przez tkz Nałogowiec (42,000 p.)
Wydaje się ciekawe. Można gdzieś zobaczyć jakiś przykład? Nie samego kodu, a jak to wygląda z zewnątrz.
komentarz 6 września 2021 przez Comandeer Guru (599,730 p.)
Proszę: https://ckeditor.com/docs/ckeditor4/latest/examples/copyformatting.html

Ten ficzer z tego korzysta. Po skopiowaniu stylów można je zaaplikować na dowolnym wyrazie po prostu na niego klikając.
komentarz 6 września 2021 przez tkz Nałogowiec (42,000 p.)
Rozumiem, że pod tym tekstem jest HTML, tak? Patrząc z boku wydaje się, że wystarczy "tylko" wkleić wybrane słowo między tagi, o ile faktycznie jest to HTML. Sam problem wydaje się ciekawy, na tym poziomie, czyli po 5 minutowej rozmowie, nie wydaje się aż tak trudny, bardziej czasochłonny. Ale to raczej luźna myśl.
komentarz 6 września 2021 przez Comandeer Guru (599,730 p.)

Obecna implementacja ma ok. 200 linii kodu i wykorzystuje rekurencyjne trawersowanie drzewa oraz regexy. I wspiera tylko języki z alfabetem łacińskim. Wspieranie innych oznaczałoby konieczność uwzględnienia także innych granic wyrazu niż spacje czy kierunku pisania tekstu.

0 głosów
odpowiedź 2 września 2021 przez TOM_CPP Pasjonat (22,640 p.)
edycja 2 września 2021 przez TOM_CPP

Jeżeli masz zamiar używać środowiska Qt do tworzenia aplikacji typu GUI, pomyśl o wykorzystaniu języka Qt QML. Można w nim szybko i łatwo pisać aplikacje okienkowe - zobacz przykłady - jak i używać modułów/bibliotek napisanych w C++.

Podobne pytania

0 głosów
2 odpowiedzi 247 wizyt
pytanie zadane 24 marca 2021 w C i C++ przez mattaha Użytkownik (690 p.)
0 głosów
1 odpowiedź 242 wizyt
0 głosów
1 odpowiedź 981 wizyt
pytanie zadane 1 grudnia 2015 w Java przez Mikrokontroler xD Stary wyjadacz (13,500 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...