2013-03-25 16 views
7

Po prostu chcę wiedzieć, czy standard C++ pozwala na programowanie GUI?Grafika używa tylko standardowego C++?

Istnieją 2 aspekty to:

  1. Widgety dla interfejsu jak okna, okna, przycisku itp
  2. graficzne takie jak rysunek koło, prostokąt, splajn, etc

mam używam Qt dla mojego UI & nie widziałem nikogo robiącego GUI tylko w C++.

PS: Obawiam się tylko języka C++, Wiem, że Java pozwala na programowanie GUI!

UPDATE: nowe pytanie dodano tutaj: How frameworks like Qt create GUI, if C++ has no functionality for that?

+2

Krótka odpowiedź: nie. – Morwenn

Odpowiedz

5

Nie, nie jest to możliwe. C++ działa na wielu urządzeniach, z których niektóre po prostu nie mają takiej możliwości.

Qt może to zrobić, zazwyczaj dlatego, że systemy operacyjne, na których działa, oferują tę funkcjonalność. Zazwyczaj jest wyeksponowany jako zestaw funkcji C, co w praktyce oznacza, że ​​można je wywoływać za pomocą kodu C++ w Qt. Co system operacyjny używa wewnętrznie, kto wie. W dzisiejszych czasach może nawet trochę pracy z GPU.

W niektórych systemach wbudowanych Qt otrzymuje wskaźnik do pamięci ekranu i sam wykonuje wszystkie operacje na pikselach. To nie jest rozwiązanie, gdy trzeba udostępnić ekran wielu aplikacjom, ale w przypadku urządzeń jednofunkcyjnych to zdecydowanie działa.

4

Nie ma nic o GUI w C++ standard.

Konstrukcje wykorzystują urządzenia OS. Standardowe C++ - nie.

1

Standardowy C++ nie zabrania programowania GUI (IOW, zezwala na to), ale jednocześnie nie zapewnia żadnej standardowej funkcjonalności biblioteki. Wykracza to poza zakres języka i jego standardowej biblioteki i zależy od OS/platformy.

Jedyna rzecz, jaką można zrobić bezpośrednio w języku C++ to ASCII art. :)

+0

Cóż, możesz * faktycznie * narysować ręcznie ekran - patrz http://stackoverflow.com/a/4887470. To nie jest obsługiwane * bezpośrednio * w standardzie i zależy od konwencji systemu operacyjnego.Z całą pewnością można by to zrobić, ale oznaczałoby to przygotowanie całej biblioteki graficznej (renderowanie oprogramowania). W tym momencie równie dobrze możesz używać SDL lub przynajmniej OpenGL. –

2

Pozwala to na to, że nie ogranicza możliwości implementacji do udostępniania dostępnych interfejsów GUI.

Standard nie wymaga środowiska GUI - wiele środowisk uruchomieniowych implementacji nie ma dostępnych, więc nie ma wymaganego standardowego interfejsu.

Nie ma również standardowego opcjonalnego interfejsu GUI.

+1

@Cool_Coder: Nowe pytanie powinno zostać zadane w nowym pytaniu; w przeciwnym razie unieważniasz wszystkie istniejące odpowiedzi. –

+0

dobrze, zada teraz nowe pytanie :) –

+0

dodał pytanie tutaj: http://stackoverflow.com/questions/15611487/how-frameworks-like-qt-create-gui-if-c-has-no- funkcjonalność-dla-tego –

3

Nie, nie jest uwzględniony. Możesz przeczytać wyjaśnienie od twórcy języka: http://www.stroustrup.com/bs_faq.html#gui

Szkielety GUI wykorzystują funkcje niskiego poziomu udostępniane przez interfejs API systemu operacyjnego lub interfejs API menedżera okien.

Powiązane problemy