Chciałem banana, dostałem go razem z małpą

0

Uczę się QT. Mam wrażenie że, to narzędzie jest przekombinowane i dubluje kompetencje standardowych bibliotek C++.
Szukałem prostej biblioteki do stworzenia GUI w C++ a dostałem nowy język programowania.
Bardziej podchodzi mi posiadanie wielu wyspecjalizowanych narzędzi (GNU Coreutils) niż jednego uniwersalnego (GNU Emacs).
Wolałbym napisać kod w C++ korzystając ze standardowych i wyspecjalizowanych bibliotek, a dopiero później napisać GUI podłączone do tego programu.
Poradzilibyście co robić w takiej sytuacji, uczyć się dalej QT a może czegoś innego? Nie oskarżacnie bo jestem początkujący ;)

edit: Uczyłem się kiedyś Borland C++ Builder podchodził mi. Problem w tym że, jest windowsowy i (chyba) nie jest rozwijany.

2

Do tego sluzy wzorzec MVC... :) W ksiazce "Wzorce projektowe" Gammy i reszty z bandy czworga... masz przyklad tak napisanej aplikacji.

Rozdzielasz sobie warstwe modelu od widoku i w zaleznosci od potrzeby kompilujesz odpowiedni widok

1

Nie wiem czy jest sens bawić się w QuickTime jeśli chcesz wyjść poza OSX. Jak chcesz przenośne i fajne GUI to może Qt albo wxWidgets?

0

@kq: wxWidgets nadaje się na Linuxa?
A co z sfml?

1

wxWidgets nie jest przywiązane do żadnej konkretnej platformy. Ale osobiście raczej zainteresowałbym się Qt. A SFML nadaje się do GUI jeszcze mniej niż QT, średni to pomysł.

0

W takim razie jak radzić sobie z dublowaniem kompetencji, to mnie najbardziej mierzi w QT?

0

Nie znam QT, ciężko mi o tym się wypowiadać. Dlaczego po prostu nie użyjesz Qt? Albo nawet wxWidgets.

1

Zmień tytuł wątku. Powinien brzmieć "Przytul mnie bo mi nie podchodzi".

Nie jesteś w stanie sprawdzić sam czy wxWidgets występuje jako fraza w wyszukiwarkach? https://www.wxwidgets.org/ myślę że trafisz w przycisk download i zauważysz czy jest wersja dla systemu o który pytasz.
Co do Borland, to się teraz nazywa tak: https://www.embarcadero.com/products/cbuilder

Nabywanie kompetencji wymaga pewnej (naprawdę niewielkiej) dozy samodzielności.

0

Właśnie nad tym się zastanawiam, jak na razie uczę się QT.

0

QT wydaje się absolutnie złym wyborem. Ucz się Qt, wxWidgets, albo nawet wspomnianego następcy Borlanda...

0

Ale ze mnie dzban. W temacie pomyliłem Qt z QT

0

Skoro GUI robisz w C++ to idąc tokiem twojego postępowania czemu nie zrobisz własnego frameworka w opengl?

Dla mnie taka akrobacja jest bez sensu ale jeśli potrzebujesz radości to ok, ale lepiej C++ w kontekście GUI używać do obliczeń+symulacji inaczej to szkoda zachodu.

Są prostsze i lepsze sposobu na to by pisać GUI.

5

Heh, mogłem się domyślić. W takim razie: Qt duplikuje część rozwiązań biblioteki standardowej, ponieważ powstało przed standaryzacją C++ (1998). Dodatkowo, przez dobre 10 lat od standaryzacji ciężko było polegać na przenośności kodu między różnymi kompilatorami (nadal jest ciężko, ale jest znacząco lepiej). Jednocześnie Qt oferuje czasem dużo przyjemniejsze interfejsy (np. QString) niż biblioteka standardowa. Niemniej jednak, jak najbardziej możesz zrobić core aplikacji w "czystym" C++, a tylko część GUI w Qt. Będzie trochę konwersji QString-std::string, ale bez przesady. Ba, taka metoda jest lepsza jeśli nie planujesz "zamykać się" we frameworku Qt.

4

Polecam również obejrzeć CppCon 2017: Giuseppe D'Angelo “Effective Qt (2017 edition)”

Są omówione różnice między kontenerami STL a Qt, jest o implicit sharing(+ przykłady jak sobie strzelić tym w stopę), jest też o QString vs std::string.

1 użytkowników online, w tym zalogowanych: 0, gości: 1