C++ Jaka biblioteka jest dobra do tworzenia GUI

0

Cześć
Programuję już 1 rok i chciałbym poznać w końcu jak tworzy się okienka. Jaką bibliotekę polecicie na start, najlepiej jakby on a była w visual studio

3

Czyli pytanie jest następujące :- "Jaką przednią szybę mam wybrać najlepiej jak by była dla Audi?" - dobrze rozumiem?
Jak już ograniczyłeś się do Visual Studio to wybierz jego natywną bibliotekę czyli .NET

2

Jedyną C++-ową biblioteką pozwalającą na tworzenie aplikacji okienkowych, z jakiej korzystałem, był Qt — który umiarkowanie polecam. Umie tysiąc jeden rzeczy, powstawał w czasach C++-a łupanego, co widać dosyć mocno (w szczególności, naprawia rzeczy, które od tego czasu zostały naprawione w nowszych standardach), i sposób jego licencjonowania bywa upierdliwy (w szczególności jedynie płatny dostęp do LTS-ów), ale daję radę. Wątpię, by istniało coś istotnie lepszego, robienie GUI powoduje przedwczesne łysienie samo z siebie.

Znaleziona na szybko lista bibliotek: https://philippegroarke.com/posts/2018/c++_ui_solutions/ Wydaje się kompletna (tzn. nie słyszałem o niczym, czego by na niej nie było), nie odpowiadam za rekomendacje i opinie autora (bo ich nawet nie czytałem).

2

https://4programmers.net/Forum/C_i_C++/359671-minimalistyczne_gui_oraz_utility_na_rok_2022
https://4programmers.net/Forum/C_i_C++/337431-c_gui_na_rok_2020

Wrzucę jeszcze najbardziej obszerne zestawienie GUI, które zawsze wklejam https://philippegroarke.com/posts/2018/c++_ui_solutions/
Z polecanych, z różnych miejsc w spektrum

  • Qt - najlepsze czego możesz użyć z klasycznego punktu widzenia, trochę krowa, ale wciąż całkiem niski próg wejścia i nawet pracę idzie w tym znaleźć
  • Sciter - jeśli chciałbyś mieć webowe GUI w swojej apce C++
  • Dear Imgui - jeśli nie boisz się spróbować mniej popularnego paradygmatu - immediate mode gui

To co jest łatwo dostępne out of the box w Visual Studio zniechęci Cię nie tylko do C++, ale i do programowania w ogóle.

0

jeśli nie boisz się spróbować mniej popularnego paradygmatu - immediate mode gui

Ja bym się upierał, że to nie jest kwestia „bania się”, ile potrzeb… W typowych aplikacjach, które renderują jedno i to samo przez >99% klatek, immediate mode raczej nie ma sensu… ale w tych mniej typowych pewnie sporo ułatwi (disclaimer: nigdy nie pisałem niczego, co by chciało z tego korzystać).

0

Jaka i czy w ogóle?
Co to znaczy "dobra" ? Dla kogo i do czego ?

Kilka tygodni temu zadałem pytanie o MINIMALISTYCZNY fw C++ do GUI
https://4programmers.net/Forum/C_i_C++/359671-minimalistyczne_gui_oraz_utility_na_rok_2022?page=1

W tym punkcie czasoprzestzreni gdzie jestem, uważam, że już nigdy nie wykonam wielkiego programu GUI w C/C++, najwyżej "małe sprytne utiluty"

Pewnie bym pisał w C# WinForms bo znam, Java Swinga też znałem (niemodny, ale dobrze ustawia myślenie obiektowe).

1

Do Visual Studio to najlepiej WinAPI :]

1

@Althorion

W typowych aplikacjach, które renderują jedno i to samo przez >99% klatek, immediate mode raczej nie ma sensu

No fakt, idle mode trzeba sobie zrobić samemu, ale nie jest to jakieś rocket science, backend zbiera input, wybudzasz pętle na dwie/trzy klatki i tyle. Z użyciem imgui wykonywane są dość klasyczne aplikacje, jak np. RemedyBG i nie ma problemu z niepotrzebnym spalaniem procesora.

0

Odpuść sobie tworzenie GUI w C++, szkoda czasu i energii. Polecam ogarnąć Fluttera.

0

W unity 3d można robić aplikacje w 2D i gry w 3D. Tam się używa visual studio.

0

wxwidgets dobry wybór ????

2

Ja używam Qt i moim zdaniem to jest dobry wybór. Kiedyś też próbowałem coś z wxWidgets, ale odpuściłem, może dlatego, że tworzenie interfejsu wygląda inaczej niż w Qt, a w Qt miałem doświadczenie. W związku z tym o Qt mogę się wypowiedzieć, a o WX tyle, co czytałem.

Jednakże wybierając bibliotekę warto zwrócić uwagę na kilka rzeczy:

  1. Czy to jest tylko pakiet funkcji tworzący okna i kontrolki (przyciski, pola itp), czy jest to cały framework, który oprócz GUI daje wiele innych przydatnych rzeczy oprócz GUI a nie ma ich w standardowym C++?
  2. Czy jest IDE posiadające możliwość wizualnego tworzenia okna GUI?
  3. Czy tą samą aplikację można skompilować i uruchomić na Windows, Linux i OSX?

Qt ma swój IDE (Qt Creator), jest frameworkiem (obsługuje między innymi bitmapy, nagrywani i generowanie dźwięku, połączenia sieciowe, bazy danych przez ODBC). Qt ma też wady:

  1. Wiele popularnych obiektów ma swoje typy, które są zdublowane ze standardowymi, np. QString, QVector, QThread co czasem komplikuje tworzenie aplikacji.
  2. Czasami (bardzo rzadko, szczególnie w przypadkach modyfikowanych kontrolek będących obiektem klasy odziedziczonej po którejś ze standardowych) z powodu jakiegoś głupiego błędu (np. odczytanie elementu tablicy poza jej rozmiarem) zdarza się, że cała aplikacja się wysypuje i nie da się złapać, ciężko jest wychwycić co jest przyczyną problemu.

Co do wxWidgets, to nie wypowiem się, bo nie mam dużego doświadczenia, ale z tego co czytałem w internecie, to jest dobry "konkurent" Qt, on również jest wieloplatformowy, jest frameworkiem mającym nie tylko GUI. IDE z WX to chyba CodeBlock z doinstalownym jakimś pluginem.

Jeżeli nie znasz żadnej biblioteki GUI, to proponuję zapoznać się z Qt i WX, sam zobacz czym się różną i pozostań przy tej, która bardziej Ci sie spodoba lub równolegle używaj obu. Chodzi o to, żeby na początku nie przywiązywać się do jednej i próbować wszystkiego w tym tworzyć.

3

Po Delphi (już od wczesnych wersji) nie spotkałem się z równie łatwym tworzeniem GUI.
Więc może zrezygnuj z Visual Studio i łap C++ Buildera :] ?
https://www.embarcadero.com/products/cbuilder

0
Spine napisał(a):

Po Delphi (już od wczesnych wersji) nie spotkałem się z równie łatwym tworzeniem GUI.
Więc może zrezygnuj z Visual Studio i łap C++ Buildera :] ?
https://www.embarcadero.com/products/cbuilder

nam bardzo dobrze swing z javy mogłoby być coś na wzór tego swinga

0

@plugan300: Obczaj sobie ImGui: https://github.com/ocornut/imgui
Sam używałem, libka dosyć prosta w obsłudze.

0
plugan300 napisał(a):
Spine napisał(a):

Po Delphi (już od wczesnych wersji) nie spotkałem się z równie łatwym tworzeniem GUI.
Więc może zrezygnuj z Visual Studio i łap C++ Buildera :] ?
https://www.embarcadero.com/products/cbuilder

nam bardzo dobrze swing z javy mogłoby być coś na wzór tego swinga

Jeżeli zdzierżysz brak autoanchor na rzecz ręcznego anchora oraz dockowania to ponownie polecam C++ Buildera.
Owszem to nie zupełnie C++ bo dodano __property

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