2016-12-20 1 views
1

일반 X11 C 또는 C++ 코드로 간단한 편집 상자가있는 방법이 있습니까?X11의 편집 상자

"plain X11 C 또는 C++ 코드"는 XCreateSimpleWindow 만든 창에서 컨트롤을 Win32 API에 해당하는 CreateWindow("edit"..)으로 만드는 것을 의미합니다.

그렇지 않다면 간단한 편집 상자 입력 대화 상자의 최소 종속 항목 (예 : Qt는 필요하지 않음)이있는 간단한 편집 상자는 무엇이 있습니까?

답변

3

일반 X11에는 이러한 기능이 없습니다. 로우 레벨 윈도우 도구 키트 (창 열기 및 유지 관리, 입력 이벤트 수신, 창으로 그리기)입니다.

사용 가능한 프리미티브에서 편집 창을 작성할 준비가 되었으면 괜찮습니다. 그렇지 않다면, 당신을 위해 그것을하는 툴킷을 사용해야합니다. 가장 단순하고 가벼운 함수를 제공하는 함수는 아마도 아테나 위젯 일 것입니다 (당신이 룩앤필에 대해 특별히 까다로울 때를 대비하여).

2

X11은 매우 낮은 수준의 프로토콜입니다. 개별 창을 만들고, 그 위에 그릴 수 있으며, 개별 입력 이벤트를받을 수있는 기능을 제공합니다. 그게 전부 야.

편집 상자와 같은 고급 사용자 인터페이스를 제공하는 것은 Qt 또는 Gtk와 같은 고급 툴킷을위한 것입니다. 그것들이 가장 일반적인 툴킷입니다. 덜 인기있는 것들도 있습니다.

하지만 결론은 X11 프로토콜을 말하는 데 사용하는 라이브러리 인 Xlib과 함께 제공되는 "편집 컨트롤"이 없다는 것입니다. 원하는 유일한 의존성이 Xlib 인 경우 자신의 코드를 사용하여 실제로 편집 컨트롤을 구현할 수 있습니다. fontconfig 및 freetype과 같은 일반적인 글꼴 처리 라이브러리를 사용하지 않으려면 X 서버의 내장 글꼴을 열거하고 키보드 입력을 처리하고 편집 컨트롤을 그리는 코드를 작성해야합니다. X11에서 사용 된 다소 모호한 키보드 인코딩을 UTF-8 또는 유니 코드와 같은 유용한 것으로 변환하는 작업은 수백 줄의 코드를 필요로합니다.

그래서 대답은 Qt 또는 Gtk를 사용하는 것입니다.

1

X 위젯의 저급 대안으로 Xaw 라이브러리 또는 Motif 라이브러리 또는 Xforms 라이브러리를 사용할 수 있습니다.

+0

"낮음 수준"은 하나의 단어입니다. 또 다른 하나는 "구형"입니다. 이러한 툴킷은 모두 수십 년이되었으며 요즘에는 근본적으로 사용되지 않습니다 (이전 버전과의 호환성 제외). 그것들은 새로운 발전을위한 아주 나쁜 선택입니다. – duskwuff

+0

그러나 아마도 세계에는 데스크톱 PC보다 훨씬 많은 것이 있습니다. – ulix

+1

Xaw 스크롤바는 3 버튼 마우스를 기대하기 때문에 임베디드 시스템에 적합하지 않습니다. – duskwuff