답변:
몇 개의 GUI 라이브러리를 일반화하고 있지만 매우 높은 수준에서 이해해야 할 가장 중요한 개념은 GUI가 이벤트 중심이라는 것 입니다.
콘솔 응용 프로그램에서 사용자 입력은 일반적으로 정의한 특정 지점에서 발생합니다. 사용자에게 프롬프트를 표시하고 입력을 기다리며 해당 입력을 기반으로 무언가를 계산합니다. 주요 차이점 중 하나는 입력이 한 곳 에서만 발생한다는 것 입니다. 명령 줄에서 텍스트를 읽는 중입니다 ( stdin
C ++).
GUI 응용 프로그램에는 일반적으로 입력이 발생할 수 있는 여러 위치 (예 : 다른 조치 또는 텍스트 필드를 수행하는 단추)가 있습니다. 이벤트가 시작됩니다. 예를 들어, 단추를 클릭하면 이벤트가 트리거됩니다. 이 이벤트는 이벤트 핸들러에 의해 처리되어야합니다. 이벤트 핸들러 는 보통 이러한 짝수가 트리거 될 때 호출 되는 이벤트 객체 를 취하는 메소드 일뿐 입니다. 버튼은 이벤트 핸들러에 대해 어떻게 알 수 있습니까? 당신은 일반적으로 구독 (또는 들어 ).
다음은 "C ++에서 영감을 얻은"예제입니다. 실제 QT 또는 C ++ 코드는 아닙니다.
class MyClickHandler : public ClickListener{
void clickHandler(ClickEvent e){
showAlertBox("The button "+e.getSource().getName()+" has been clicked");
}
};
Button을 만들 때 MyClickHandler 클래스의 인스턴스를 버튼에 등록합니다.
...
MyClickHandler handler();
Button b("Save");
b.registerListener(handler);
...
이제 버튼 b
을 클릭 할 때마다 "버튼 저장이 클릭되었습니다"라는 메시지 상자가 나타납니다.
GUI 응용 프로그램에는 두 단계가 있다고 상상할 수 있습니다.
이것은 매우 간단한 예이지만, 어떤 프레임 워크를 사용하든 버튼을 클릭하면 메시지 상자를 표시하는 것이 좋습니다.
프레임 워크의 경우 많은 것들이 있습니다 .C ++의 경우 Qt를 권장합니다.
마지막 조언 : 백그라운드에서 무슨 일이 일어나고 있는지 실제로 알 때까지 GUI 디자이너로부터 멀리하십시오. 간단한 예제를 작성하고 이벤트 루프를 먼저 이해 한 다음 더 복잡한 레이아웃으로 넘어가는 것은 그리 어렵지 않습니다.
지금은 GUI 포로 그래밍을 배우는 것만 큼 좋은 시간입니다. C ++을 알고 있으므로 QT를 보는 것이 좋습니다. 훌륭한 문서, 거대한 사용자 기반 및 배울 수있는 많은 예제 / 자습서.
Microsoft Visual Studio C ++ Express로 시작할 수도 있습니다 . IDE는 매우 친숙하고 사용하기 쉬우 며 무료입니다! 첫 번째 GUI 응용 프로그램을 매우 빠르게 만들 수 있습니다 ... 다른 방식 으로 이벤트 중심 프로그래밍 의 기본 사항을 이해하는 데 집중할 수 있습니다. 마스터해야합니다.
직접 WPF 기반 응용 프로그램을 작성하는 것으로 시작할 수도 있지만, 처음에는 Windows Forms부터 시작할 것입니다. 이는 Microsoft의 Windows Forms API를 사용하는 기본 C ++이기 때문에 이해하기 어려운 기술입니다.