Wszystkie moje programy C ++ do tej pory korzystały z interfejsu wiersza poleceń, a jedynym innym językiem, z jakim mam doświadczenie, jest PHP, który nie obsługuje GUI.
Od czego zacząć od graficznego programowania interfejsu użytkownika w C ++? Jak mogę je utworzyć?
c++
user-interface
waiwai933
źródło
źródło
Odpowiedzi:
Zasadniczo system okienkowy systemu operacyjnego ujawnia niektóre wywołania API, które można wykonywać w celu wykonania zadań takich jak utworzenie okna lub umieszczenie przycisku w oknie. Zasadniczo otrzymujesz zestaw plików nagłówkowych i możesz wywoływać funkcje w tych zaimportowanych bibliotekach, tak jak zrobiłbyś to ze stdlib i
printf
.Każdy system operacyjny ma własny zestaw narzędzi GUI, pakiet plików nagłówkowych i wywołań interfejsu API oraz własny sposób działania. Istnieją również zestawy narzędzi dla wielu platform, takie jak GTK , Qt i wxWidgets, które pomagają tworzyć programy działające w dowolnym miejscu. Osiągają to poprzez takie same wywołania API na każdej platformie, ale inną implementację dla tych funkcji API, które wywołują rodzime wywołania API OS.
Jedną wspólną cechą, która różni się od programu CLI, jest pętla zdarzeń. Podstawowa idea jest nieco skomplikowana i trudna do skompresowania, ale w gruncie rzeczy oznacza to, że w twojej głównej klasie / głównej funkcji nie dzieje się nic wielkiego, z wyjątkiem:
Istnieje wiele zasobów na temat programowania opartego na zdarzeniach. Jeśli masz jakiekolwiek doświadczenie z JavaScriptem, jest to ten sam podstawowy pomysł, z tym wyjątkiem, że ty, scripter, nie masz dostępu ani kontroli nad samą pętlą zdarzeń, ani jakie zdarzenia są, jedynym zadaniem jest pisanie i rejestrowanie programów obsługi.
Należy pamiętać, że programowanie GUI jest niezwykle skomplikowane i ogólnie trudne. Jeśli masz taką opcję, w rzeczywistości o wiele łatwiej jest po prostu zintegrować wbudowany serwer WWW z programem i mieć interfejs oparty na HTML / web. Jedynym wyjątkiem, z jakim się spotkałem, jest program Apple Cocoa + Xcode + konstruktor interfejsu + samouczki, które sprawiają, że jest to najłatwiej dostępne środowisko dla osób, które nie znały programowania GUI.
źródło
Istnieje wiele darmowych przenośnych bibliotek GUI , z których każda ma swoje mocne i słabe strony:
Zwłaszcza Qt ma fajne tutoriale i narzędzia, które pomogą ci zacząć. Cieszyć się!
Należy jednak pamiętać, że należy unikać funkcji specyficznych dla platformy, takich jak Win32 API lub MFC. To niepotrzebnie wiąże Cię na konkretnej platformie bez prawie żadnych korzyści.
źródło
Niezależny algorytm systemu operacyjnego „ Tworzenie aplikacji GUI w C ++ w trzech krokach ”:
Zainstaluj Qt Creator
Utwórz nowy projekt (aplikacja Qt Widgets)
Zbuduj to.
Gratulacje, masz swój pierwszy GUI w C ++.
Teraz możesz przeczytać wiele dokumentacji, aby stworzyć coś bardziej skomplikowanego niż aplikacja GUI „Hello world”.
źródło
Biorąc pod uwagę komentarz „powiedz Windows XP jako przykład”, masz następujące opcje:
Interakcja bezpośrednio z systemem operacyjnym poprzez interfejs API, który dla Microsoft Windows jest niespodzianką, zadzwoń do Windows API . Ostatecznym odniesieniem do WinAPI jest witryna MSDN firmy Microsoft . Popularnym samouczkiem dla początkujących online jest samouczek programowania interfejsu API Win32 . Klasyczną książką do tego jest Programowanie systemu Charlesa Petzolda , wydanie 5 .
Użyj biblioteki specyficznej dla platformy (zarówno pod względem systemu operacyjnego, jak i kompilatora), takiej jak MFC , która otacza WinAPI klasą C ++. Odniesieniem do tego jest ponownie MSDN. Klasyczną książką do tego jest Programowanie okien Jeffa Prosise'a z MFC, wydanie drugie . Jeśli używasz powiedzmy CodeGear C ++ Builder, wtedy opcją jest VCL .
Użyj biblioteki wieloplatformowej, takiej jak GTK + (opakowanie C ++: gtkmm ), Qt , wxWidgets lub FLTKktóre zawijają API konkretnego systemu operacyjnego. Zaletami tych programów jest to, że program można skompilować dla różnych systemów operacyjnych bez konieczności zmiany kodów źródłowych. Jak już wspomniano, każdy z nich ma swoje mocne i słabe strony. Jedną z kwestii przy wyborze, której użyć, jest licencja. W podanych przykładach GTK + & gtkmm jest licencją na licencji LGPL, Qt jest objęty różnymi licencjami, w tym zastrzeżoną opcją, wxWidgets ma własną licencję wxWindows (z nazwą na licencję wxWidgets), a FLTK jest objęty licencją LGPL. Aby uzyskać informacje, samouczek i książki, odwiedź witrynę każdego z nich, aby uzyskać szczegółowe informacje.
źródło
Ponieważ byłem już tam, gdzie teraz jesteś, myślę, że mogę ci „odpowiedzieć”.
Faktem jest, że nie ma łatwego sposobu na stworzenie GUI. GUI są wysoce zależne od kodu specyficznego dla platformy i systemu operacyjnego, dlatego powinieneś zacząć czytać dokumentację platformy docelowej / systemu operacyjnego na temat interfejsów API zarządzania oknami. Dobrą rzeczą jest: istnieje wiele bibliotek, które rozwiązują te ograniczenia i abstrakcyjne różnice w architekturze w jednym wieloplatformowym interfejsie API. Te sugerowane wcześniej, GTK i Qt, to niektóre z tych bibliotek.
Ale nawet te są nieco zbyt skomplikowane, ponieważ wprowadzono wiele nowych koncepcji, typów danych, przestrzeni nazw i klas jednocześnie. Z tego powodu używają one dołączone do edytora GUI WYSIWYG. W zasadzie umożliwiają oprogramowanie do programowania z GUI.
Podsumowując, istnieją również niewolne „środowiska” do programowania GUI, takie jak Visual Studio firmy Microsoft. Dla osób z doświadczeniem Delphi Visual Studio może być bardziej znane. Istnieją również bezpłatne alternatywy dla pełnego środowiska Visual Studio dostarczanego przez Microsoft: Visual Studio Express , który jest więcej niż wystarczający do rozpoczęcia tworzenia GUI.
źródło
Znalazłem stronę internetową z „prostym” samouczkiem: http://www.winprog.org/tutorial/start.html
źródło
Łatwo jest utworzyć interfejs GUI .NET dla systemu Windows w C ++.
Zobacz następujący samouczek MSDN . Możesz pobrać wszystko, czego potrzebujesz (Visual C ++ Express) za darmo .
Oczywiście przywiązujesz się do platformy .NET, ale jeśli tylko bawisz się lub potrzebujesz tylko aplikacji systemu Windows, nic ci nie będzie (większość ludzi wciąż ma system Windows ... na razie).
źródło
Używam FLTK, ponieważ Qt nie jest darmowy. Nie wybieram wxWidgets , ponieważ mój pierwszy test z prostym Hello, World! program stworzył plik wykonywalny 24 MB, FLTK 0,8 MB ...
źródło