Tworzenie Okien na wielu systemach

0

Witam, otóż mam pewien problem.
Pytanie tyczy się C++ i tworzenia okien w nim.

Jeżeli chodzi o systemy Windows to nie ma problemu, korzystam z WindowsAPI.
Ale chciałem zrobić program, który działałby pod wieloma systemami.

Szukałem jak tworzyć okienka pod linuxami i znalazłem XWindow 11 (X11), w którym na czysto
możemy tworzyć okna bez żadnych otoczek. Jeżeli linux ma jakieś bardziej podstawowe api do tworzenia okien to jeżeli ktoś byłby łaskawy podesłać mi stronę :)

Ale co z macami? Przypuszczam, że mac wspiera OpenGL, używać do tego GLUT? Czy może mac ma swoje api do tworzenia okien?

Jedynym założeniem jest najmniej bibliotek pobocznych. Chciałbym czyste API, które jest po prostu dedykowane pod dany system. Chęć nauki.

Pozdrawiam.

0

Albo piszesz niskopoziomowo, albo przenosnie.

  1. Poczytaj o makrach systemowych i napisz 3 rozne wersje [masochizm: on]
  2. Uzyj bibliotek do tego stworzonych, qt, wx, co tam sobie chcesz.
0

Mi jednak chodziło o to, jakie konkretnie API używa każdy z systemów (nie mówię o Windows -> WinAPI)
sprawę z innymi rzeczami zostawiam sobie dla siebie. Wiem, że można to zrobić z makrami systemowymi.
Nie rozumiem jednak czemu zaproponowałeś mi qt, w końcu ono samo musi z czegoś korzystać, aby tworzyć cały interfejs.
btw. Chciałbym się nauczyć tego, przynajmniej podstaw.

0

Windows: WinAPI
Mac OS X: Cocoa
Linux: X'y (To nie jest API Linuxa! Linux nie jest bezposrednio zwiazany z menedzerami okien).

0

Nie ma czegoś takiego jak makro systemowe. Chodziło pewnie o makra preprocesora...

Creators napisał(a):

Nie rozumiem jednak czemu zaproponowałeś mi qt, w końcu ono samo musi z czegoś korzystać, aby tworzyć cały interfejs.
btw. Chciałbym się nauczyć tego, przynajmniej podstaw.

I właśnie po to powstaje Qt, żeby programista chcący stworzyć przenośną aplikację okienkową nie musiał się babrać tworząc odrębną wersją pod każdy system operacyjny... Dodatkowo Qt ma bardziej przystępne API niż takie WinAPI i daje więcej możliwości (więcej featureów do osiągnięcia nie wgłębiając się za bardzo w sposób działania).

Pod Linuksem można powiedzieć, że X Window System jest "podstawową biblioteką" do okien - http://tronche.com/gui/x/xlib/

Po co odrzucasz zdobycze techniki? Żeby być hardkorem :D ?

0

Po co odrzucasz zdobycze techniki? Żeby być hardkorem :D ?

Bo generalizując odrzucamy native look & feel i integrację z systemem. Simple as that. Spójrz na Chrome czy Firefoksa. Pomimo własnego silnika graficznego mają tonę kodu dla każdego ze środowisk. Qt nie będzie wyglądać dobrze na wszystkich platformach jednocześnie. Co więcej, nie Qt jest tutaj problemem, a inne filozofie i idee za interfejsem różnych systemów. Zwyczajnie inaczej robi się niektóre rzeczy na Windows i kompletnie inaczej na Mac OS X.

0

Nie wiem API? POSIX, Single UNIX Specification? Jak chcesz niskopoziomowo poznać system polecam Gentoo, napisanie kilku "nieokienkowych" aplikacji a później jeśli chodzi o X'y - np. menedżer okien itd.. przykładowego kodu jest masa. Tylko to nierozsądne i katorżnicze. Jak myślisz poważnie o okienkach na wiele systemów - Qt.

0

Zwyczajnie inaczej robi się niektóre rzeczy na Windows i kompletnie inaczej na Mac OS X.
Tak naprawdę to ciężko w czymś innym niż gołe WinAPI (i ewentualnie MFC) osiągnąć prawdziwie natywny wygląd pod Windows (zgodnie z wytycznymi Microsoftu, tego jest kilkaset stron...)

Bibliotek przenośnych (jak Qt) używa się, bo

  • nie jest wygląd jednak AŻ TAK istotny, na pewne kompromisy można się godzić
  • inaczej to byłoby pisanie od nowa całej aplikacji, a tego raczej nie chcemy.

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