Z jakiej biblioteki lub frameworki korzystacie do stworzenia UI?

0

Dobra noc, chciałbym się zapytać jakie biblioteki i/lub frameworki polecacie do tworzenia UI i dlaczego? Z góry dziękuję za odpowiedzi! :)

2

Używam
WinForms - bo umiem i tworzy ładne kontrolki z uchwytami na każde okno (tak w windowsie nawet przycisk jest oknem - dlatego system tak się nazywa).
VCL - bo umiem i podobnie się oprogramowauje co WinForms.
WinApi - jak potrzeba coś customowego zrobić lub bardzo lekkiego.

Nie używam:
QT - Nie widziałem takiej potrzeby
WPF - wkurza mnie jak okno ma jeden uchwyt tylko
UWP - z tego co wiem, można odpalić jedną instancje takiej apki.
MFC - bo to już staroć i jest WinForms, ale jak coś mam w tym to dalej rozwijam.

4

Jeśli chodzi o C++ to QT się dobrze rozwija. Wszystko zależy, pod jaki system to UI ma być: inaczej pod system dla firmy a inaczej po edytor grafiki 3D. Sa też GTK+ i FLTK, ale tu to nie wiem jak z rozwojem.

5

wxWidgets

7

Qt:

  • dobre wsparcie wielu platform,
  • wygodna licencja,
  • dobrze ją znam,
  • niezła wydajność
  • Qt to dużo więcej niż GUI, na dobrą sprawę wystarczy samo C++ + Qt.
2
kq napisał(a):

Qt:
...

  • Qt to dużo więcej niż GUI, na dobrą sprawę wystarczy samo C++ + Qt.

Uznajesz ignorowanie / powielanie biblioteki standardowej, łącznie ze stringiem, jako dobre?
Nawiasem to choroba większości GUI w C++

5

Nie, uznaję to za problem (nie pisałem, że Qt to ideał bez wad). Jednocześnie, operowanie na QStringach jest znacznie wygodniejsze niż na std::stringach. Ponadto, samo wprowadzenie QStringów, QThreadów itd. nie było błędem, bo w tamtym momencie biblioteka standardowa była żałośnie uboga. Jeśli chodzi o operacje na stringach - wciąż jest (std::fmt pojawi się dopiero w C++20, string split tylko w booście i to też niezbyt przyjemny w użyciu).

Najważniejsze jednak jest coś innego: pisanie w C++/Qt, pomimo takich problemów, jest naprawdę przyjemne. Jestem w tym wydajny, mój kod działa wszędzie¹, jest całkiem wydajny i wygląda natywnie.

¹ ;​)

6
AnyKtokolwiek napisał(a):
kq napisał(a):

Qt:
...

  • Qt to dużo więcej niż GUI, na dobrą sprawę wystarczy samo C++ + Qt.

Uznajesz ignorowanie / powielanie biblioteki standardowej, łącznie ze stringiem, jako dobre?
Nawiasem to choroba większości GUI w C++

Proponuje pokodować wieloplatformowo Windows MSVC i inna platforma i poużywać troszkę wchar_t std::wstring (na Windows masz 16 bitów na znak u innych 32).
Do tego jeszcze spróbuj w standardzie robić konwersje kodowania znaków (da się ale jest to upierdliwe szczególnie, że MSVC ma swoje "standardy"). boost ratuje sytuację, ale jeśli używa się boost to równie dobrze można używać Qt.

Z Qt wszystkie te problemy nie istnieją.

3

Polecam FLTK. Jest to biblioteka stosunkowo mała, można z jej użyciem przygotować statycznie zlinkowane binarki na Linuksa i Windows (Mac też, ale ja osobiście nie używałem), o małym rozmiarze. Ograniczona wielkość biblioteki, oraz fakt że używane przez nią rozwiązania są mało wyszukane, sprawia że da się w skończonym czasie zapoznać z jej całą dokumentacją i programami demonstracyjnymi zawartymi w źródłach.

Nie rozwija się szybko, co ja osobiście postrzegam jako zaletę - nie trzeba co chwilę korygować programów zrobionych kilka lat temu, aby współpracowały z nową wersją biblioteki. Nie zauważyłem, aby miała jakieś poważne braki, wymagające pilnego uzupełnienia.

1

@Troll anty OOP:
A jesteś w stanie pomóc w zainstalowaniu tego?
Pobrałem 1.3.0 z ich strony i nijak to nie działa, mam dodane mingw32 do PATH a żadne polecenia typu mingw32-make nie działają, w całym katalogu fltk nie ma żadnych plików lib (chyba, że readme.lib), codeblocks w tworzeniu projektu każe sobie podać ścieżkę do podkatalogów lib i include (include musiałem sam doroić) - podaję, to się pluje, że nie ma pliku biblioteki fltk (i chyba ma rację, bo nic takiego tam nie znalazłem). Masakra.

0

Nie ma plików .a w katalogu lib/, bo nie skompilowałeś biblioteki. Z tego, co widzę, to można ją skompilować przy użyciu CMake.

Zastanowiłbym się nad użyciem MSYS2 i zainstalowaniem FLTK pacmanem (powinna być).

0

Tak. Nie skompilowałem, bo nie wiem jak to zrobić. Any help?

1
  • zainstaluj CMake.
  • w katalogu fltk (tam, gdzie jest CMakeLists.txt) stwórz katalog build.
  • odpal "w nim" cmd.
  • wywołaj cmake .. -G"MinGW Makefiles" (możesz też dodać -DCMAKE_BUILD_TYPE=Debug, jeśli chcesz bibliotekę w wersji debug).
  • make (ewentualnie mingw32-make).
  • normalnie mógłbyś dać jeszcze make install, ale nie wiem, jak to na Windowsie zadziała ( możesz spróbować w ptk 4 ze zmienną CMAKE_INSTALL_PREFIX, by ustawić ścieżkę instalacji).

Nie wykluczone, że będą potrzebne jakieś zależności, ale...

0

Zainstalowałem CMake, instalator mi od razu dodał cmake do ścieżki (PATH).
Ogólnie to plików CMakeLists.txt znalazło 9 sztuk, ale stworzyłem build w głównym - u mnie e:\programowanie\fltk
Odpaliłem cmd, wszedłem w podany wyżej katalog.
ten dwukropek op cmake mnie zastanawia - tak miałem napisać czy tam ma być jakaś sćieżka?

https://iv.pl/image/GtfsJKz

1

Tak miałeś napisać - .. to katalog rodzic.

instalator mi od razu dodał cmake do ścieżki (PATH).

Coś słabo dodał, bo cmd nie rozpoznaje polecenia cmake, a powinien. Zrestartuj konsole.

0

ps. wykopnałem polecenie pushd ze ścieżką dostępu do fltk (na jakiejś stornie tak wyczytałem) po czym mingw32-make zadziałało i lecą jakieś procenty

0

W ścieżce jak by co sprawdzałem - jest e:\programowanie\cmake317\bin

ale chyba coś się zadziało, bo w Codeblocks moge już stworzyć projekt fltk i jakieś pliki .a się w ..\fltk\lib pojawiły

https://ibb.co/VSMXnS6

1

@_0x666_:

https://ibb.co/QbpL34G

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