현재 Capy는 여전히 브레이크 변경을하고 있기 때문에 생산에 사용할 준비가되지 않았습니다.
Capy Targets Zig 버전 0.14.0-dev.1911+3bf89f55c / 2024.10.0-mach (지명 된 지그 버전) 는 Zig 0.13.0 에서 작동하지 않습니다.
Capy는 Zig의 GUI 라이브러리 입니다. 주로 운영 체제의 기본 컨트롤을 사용하여 응용 프로그램을 작성하기위한 것입니다. Capy는 글을 쉽게 작성하고 다재다능한 선언적 UI 라이브러리입니다.
독립형 UI 애플리케이션에 권한을 부여하고 게임 통합 또는 기타 렌더링 프로세스가 비 데우는 목표로 만들어졌습니다.
새로운 프로젝트를 시작하는 경우 Capy-Template를 복제하고 빌드 지침을 따르십시오.
그렇지 않으면 또는 자세한 내용은 문서를 살펴보십시오.
#Capy-UI 매트릭스 채널에서 질문을하고 업데이트를받을 수 있습니다.
capy를 사용한 간단한 응용 프로그램 :
const capy = @import ( "capy" );
const std = @import ( "std" );
pub usingnamespace capy . cross_platform ;
pub fn main () ! void {
try capy . init ();
var window = try capy . Window . init ();
try window . set (
capy . column (.{ . spacing = 10 }, .{ // have 10px spacing between each column's element
capy . row (.{ . spacing = 5 }, .{ // have 5px spacing between each row's element
capy . button (.{ . label = "Save" , . onclick = @ptrCast ( & buttonClicked ) }),
capy . button (.{ . label = "Run" , . onclick = @ptrCast ( & buttonClicked ) })
}),
// 'expanded' means the widget will take all the space it can
// in the parent container
capy . expanded (
capy . textArea (.{ . text = "Hello World!" })
)
})
);
window . setPreferredSize ( 800 , 600 );
window . show ();
capy . runEventLoop ();
}
fn buttonClicked ( button : * capy.Button ) ! void {
std . log . info ( "You clicked the button with text {s}" , .{ button . getLabel ()});
} 버튼이나 텍스트 영역과 같은 것을 쉽게 추가 할 수 있습니다. 이 예제는 이미 위젯의 매개 변수가 일반적으로 익명 문자 ( .{ .label = "Save" } )로 둘러싸여 있음을 알 수 있습니다. 또한 capy.Expanded( ... ) 로 위젯을 감싸는 것이 가능한 모든 공간을 가져갈 것이라고 말할 수 있습니다.
기여는 문제를 여는 것만 큼 간단 할 수 있으며, 발생한 버그 또는 원하는 기능을 비난하는 것만 큼 간단 할 수 있습니다.
프로젝트를보다 직접적으로 도와 주려면 프로젝트를 포크 한 다음 풀 요청을 만들 수 있습니다.
플랫폼은 다른 모든 OS에서 구축 할 수있는 경우에만 지원되는 것으로 간주됩니다.
전설 :
✅ Windows X86_64
✅ Windows I386
? 마코스 M1
? MacOS X86_64
Linux x86_64
Linux i386
Linux Aarch64 (파인 폰, 파네 북 ...)
freebsd x86_64
? 기계적 인조 인간
? iOS
webassembly
참고 : Linux의 "공식"GUI 라이브러리가 없으므로 GTK 4는 가장 잘 배포 될 수있는 제품이므로 선택되었습니다. 또한 Libadwaita가 채택되지 않는 이유입니다. 스타일링을 허용하지 않고 다른 DES와의 통합으로 만 그놈과 그놈을위한 것이기 때문입니다.
현재로서는 모든 플랫폼이 동일한 구성 요소를 지원하는 것은 아닙니다. 다음은 지원되는 것들의 목록입니다.
| Win32 | 마코스 | GTK | 기계적 인조 인간 | Wasm | |
|---|---|---|---|---|---|
| 단추 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 캔버스 | ✅ | ✅ | ✅ | ||
| 확인란 | ✅ | ✅ | |||
| 드롭 다운 | ✅ | ✅ | |||
| 영상 | ✅ | ✅ | |||
| 상표 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 메뉴 | |||||
| 항해 | |||||
| navigationsidebar | ✅ | ||||
| 스크롤 가능 | ✅ | ✅ | |||
| 슬라이더 | ✅ | ✅ | ✅ | ||
| 탭 | ✅ | ✅ | |||
| Textarea | ✅ | ✅ | |||
| 텍스트 필드 | ✅ | ✅ | ✅ | ✅ | |
| 창문 | ✅ | ✅ | ✅ | ✅ | ✅ |