Ile trzeba umieć aby stworzyć graficzne okno?

Tak jak w temacie.

Czy czeka mnie dużo nauki abym mógł zrobić proste graficzne okienko z jakimiś przyciskami? Pytanie dotyczy C++ i oczywiście systemu Windows. 

Fajnie by było gdyby ktoś podał ogólny “przebieg” nauki tzn. co po kolei muszę wiedzieć aby to osiągnąć. 

Wyklikasz sobie w visual studio. A co do samego wsadu to wystarczy ci znajomość podstaw programowania obiektowego + znajomość tego co chcesz napisać.

W dzisiejszych czasach z ‘tutorialami’ i innymi YT jeden wieczór. Co innego w 100% zrozumieć.

GtkWindow *window = gtk_window_new_with_label("Okienko");

 

Pod Windowsem możesz korzystać tak z biblioteki GTK+, jak i Qt. Czystego WinAPI nie polecam.

Podepnę się pod temat trochę bo ostatnio zastanawiałem się tak jakby wyglądała kolejność kroków do zrobienia jeśli chciałbym wyświetlać okno bez wykorzystywania gotowych bibliotek.

Mógłby ktoś mniej więcej napisać co trzeba zrobić lub z czego skorzystać? Platforma nie istotna - tak wiem inaczej bezie na linuxie inaczej na windzie, dla mnie nie ma znaczenia chcę się dowiedzieć jak to wygląda w teorii na byle jakiej platformie.

Pod Windowsem okienka tworzysz przez WinAPI :wink: Ale ostrzegam, że jest to dosyć toporne.

W tym tutorialu http://xion.org.pl/productions/texts/coding/megatutorial/ jest rozdział o WinAPI.

A tu dokumentacja od Microsoftu https://msdn.microsoft.com/en-us/library/ms632586

 

Puste okienko możesz sobie zrobić w chwilę, nie wiedząc nic. Wszystko zależy, co chcesz dokładnie w nim mieć i ile orientować się w działaniu tego.

Poza tym, radzę iść w coś niezależnego. Polecam Qt.

Zacznij od nauki Qt.

Jak wyżej, tu masz tutorial krok po kroku, dużo tego nie ma (puste okno stworzysz już gdzieś po przeczytaniu 5% z tego wpisu): https://wiki.qt.io/Qt_for_Beginners

Czemu akurat C++ ? Jak pod Windows to znacznie łatwiej będzie zacząć z C# i okienkami w WinForms albo WPF.

Dzięki, nie sądziłem że odpowiedź na moje “rozkminy” mam cały czas pod nosem. Swoją drogą bardzo fajnie wygląda tutorial do którego linka dałeś.

Może chcesz znać tryb Vesa?

QT i inne rzeczy.

A swoją drogą, teraz w wielu językach okienka, przyciski, gui wyklikowujesz, nawet gdy piszesz programy na androida, to wyklikowujesz GUI całe, buttony, checkboxy i inne rzeczy przeciągasz myszką i upuszczasz i ewentualnie w pliku xml dopisujesz linijkę jakąś lub poprawiasz rozmiary buttona, czy czcionki. W netbeans (java i np. programy na windows) też wyklikowujesz wygląd programu przeciągając i upuszczając różne komponenty. A w eclipse (i java) lub w android studio nawet do odtwarzania muzyki, dźwięków masz gotowe rzeczy jak media player i parę linijek krótkich piszesz i masz odtwarzanie dźwięków. Tak wiele rzeczy wygląda w obecnych czasach w wielu językach, bo nie ma sensu robić czegoś samemu, bo to tylko wygląd, sam wygląd programu nie sprawia, że program cokolwiek robi, jest bezwartościowy. Nawet tworzenie gier 3d w silnikach takich jak unity i innych ma gotowe rzeczy jak buttony, checkboxy, gotowe kształty, fizykę, kolizje i masę innych rzeczy, a stworzony w 3ds max lub blenderze model 3d przeciąga się i upuszcza w oknie programu i w sekundę mamy domek w grze, a parę sekund później mamy domek oświetlony gotowymi światłami, ściany mają kolizje, a tworzenie gry to głównie pisanie skryptów, jak dana rzecz ma się zachowywać, co robić gdy x warunek zostanie spełniony i takie tam. Szkoda czasu na robienie własnego silnika (szczególnie gdy jest się amatorem), lepiej używać gotowych silników, darmowych, bo licencje mają dość ciekawe nawet do zarabiania pewnych pieniędzy nie wydając ani grosza.

Swoją drogą masa programów korzysta z gotowych bibliotek i innych rzeczy jak np. BASS.dll (programy typu - odtwarzanie muzy, radio), czy ffmpeg (programy do konwertowania wideo).

To nie zasługa języka programowania, to jest kwestia IDE nic więcej. Więc to nie jest tak jak piszesz.

RE UP: Masz rację, ale ktoś wpadł na coś takiego, jak generacje języków programowania. Długo trwał spór, co nazwać językami piątej generacji. Niektórzy sądzili, że RAD-y, to właśnie języki piątej generacji, co było nieprawidłowe, a inni, że języki typu prolog i podobne to języki piątej generacji.

a swoją drogą (jako ciekawostka) https://www.embarcadero.com/products/rad-studio

A propos tych RADów, są fajne, czasami coś robiłem w eclipse, android studio i w radzie i szybciej, wygodniej mi się pisało programy w radzie, sporo komponentów skracających czas, znacznie fajniejszy edytor wg mnie, bo jeśli chodzi o same języki różne, to są podobne, choć w takim delphi operacje na stringach miały funkcje, które nie istniały w javie, a te istniejące były takie same pod inną nazwą lub różniące się minimalnie

Pisanie w czystym WinAPI nie ma żadnego sensu, jak nie masz ku temu poważnych powodów. To jest najniższe API Windowsa. Zresztą jest teraz tyle bibliotek z graficznym projektowaniem interfejsu, że jaki sens ma pisanie w czystym WinAPI? No chyba, że twój program wymaga jakiś skomplikowanych mechanizmów Windowsa, to wtedy chyba nie masz innego wyboru.

Vala jest podobno fajnym językiem - wzorowany na C# i Java, a znacznie szybszy(parokrotnie). Łatwo w nim się programuje w GTK+. C++ z Qt to też dobry wybór - Qt rozszerza nieco nawet jakby składnię C++.